声明:"主函数的可执行部分中必须至少有一个语句。"

时间:2017-03-16 16:21:28

标签: c

我的教科书提到:主函数的可执行部分必须至少有一个语句。

1)

#include <stdio.h>
void main(){ int c; }

2)

#include <stdio.h>
void main(){ int c; c=0; }

以上两个代码导致运行时错误。

3)

#include <stdio.h>
void main(){
int c; c=5; printf("%d",c); } 

上面的代码运行正常。可能的原因是什么?

1 个答案:

答案 0 :(得分:3)

首先,

1程序启动时调用的函数名为main。实施宣布否 这个功能的原型。它应定义为返回类型int且没有 参数:

    int main(void) { /* ... */ }
或两个参数(此处称为argc argv ,但任何名称都可能是 使用,因为它们是声明它们的函数的本地):

int main(int argc, char *argv[]) { /* ... */ }

或等效的; 10)或以其他一些实现定义的方式。

C 2011 Online Draft,§5.1.2.2.1程序启动

除非您的编译器文档专门将其列为有效签名,否则使用void main()会导致未定义行为,这可能是您的运行时错误的来源。

其次,当前的C标准不要求main包含任何可执行语句。