我的教科书提到:主函数的可执行部分必须至少有一个语句。
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); }
上面的代码运行正常。可能的原因是什么?
答案 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
包含任何可执行语句。