为什么当我这样声明主函数时我的 C 程序不起作用(我颠倒了参数位置):
int main(char * argv, int argc){
}
我编译它没有问题,但是当我运行它时出现错误。
谢谢。
由于main()
签名不正确,这不是一个有效的 C 程序。
尝试启用编译器警告。我的编译器告诉我这个问题:
$ gcc -Wall test.c
test.c:1:5: warning: first argument of 'main' should be 'int' [-Wmain]
test.c:1:5: warning: second argument of 'main' should be 'char **' [-Wmain]
与 C++ 不同,C 中的函数仅由它们的名称而不是它们的参数来标识。例如,当链接器看到“主要”功能时,它会非常高兴。
然而,有一些假设 main() 是如何被操作系统调用的。运行时环境。当您的参数错误时,您的程序将看到意外的值并可能崩溃。
And btw, you probably will see errors or warnings when you enable diagnostics (e.g. '-Wall -W') when building the program.