【发布时间】:2021-02-08 18:10:30
【问题描述】:
main;
这是可以用 C 编译的最小程序。
编译警告(gcc):
test.c:1:1: warning: type defaults to ‘int’ in declaration of ‘main’ [-Wimplicit-int]
test.c:1:1: warning: ‘main’ is usually a function [-Wmain]
我想从句法上理解它的含义,即:
- 为什么在声明函数时使用分号?
- 为什么缺少括号和大括号是合法的?
我知道函数的默认返回类型是int,如果省略的话。我还听说过在main 之前调用的_start 函数。这意味着它正在调用一个尚未定义的函数(?)。
为什么可执行文件在运行时会出现段错误?
【问题讨论】:
-
警告很清楚易懂,有一些规则我们需要遵守。可能任何专家都可以解释为什么部分。
-
你的minimal reproducible example在哪里?您的问题中没有可以编译和运行的内容。
-
顺便说一句:警告
type defaults to ‘int’ ....或任何包含单词implicit的警告应始终被视为错误。
标签: c compilation main