C 角落案例和陷阱

标签 c platform-specific

我很惊讶为什么会这样?

short main [] ={};

这是文件中唯一的内容。它在 gcc 上编译正确。但是当我运行它时,它会打印段错误。当我重命名 main 时,编译器给出错误。 任何人都可以向我解释这里发生了什么。

最佳答案

显然链接器不知道全局对象的类型(比如:变量或函数),而只知道地址;所以它链接程序就好像你的变量是一个函数一样。由于显而易见的原因而崩溃。

关于C 角落案例和陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618270/

相关文章:

c - C中函数指针的递归声明

java - 如何在 Java 中执行特定于操作系统的通知?

swift - 将数据从flutter传递到原生IOS

r - 在 Windows 8 上将 R 模型转换为 PMML 是否有大小限制?

c - 如何检测子进程是否崩溃?

c - wait 和 waitpid 在 Linux 中返回时会阻塞 SIGCHLD 并解除阻塞吗?

python - 如何在 Python 中找到当前的操作系统?

c++ - 分别针对不同平台开发,有人推荐吗?

c - 重新分配后如何更改保存的地址

c - 增加 Clion 中 C 程序的堆栈大小