[英]How to compile and run `main;` in C
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]
从句法上讲,我想了解它的含义,即:
我知道 function 的默认返回类型在省略时是int
。 我还听说过在main
之前调用的_start
function 。 这意味着它正在调用尚未定义的 function(?)。
为什么可执行文件在运行时会出现段错误?
因为您没有为main
指定类型,所以编译器默认为int
类型。 不是 function 返回一个int
,而是一个int
。 从句法的角度来看这是合法的,因为您也可以使用myvar;
在您的代码中也将被声明为int
。
但是因为main
是特殊的,所以你会收到第二个警告。 它让您知道您定义main
的方式与通常定义的方式不同。
因此,当您编译此程序并尝试运行它时,它期望main
成为 function 的开始,而实际上它只是一个int
变量。 这就是导致段错误的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.