int main(void) { /* ... */ }
int main(int argc, char *argv[]) { /* ... */ }
c99标准只有这两种
这个和第2种一样int main(int argc, char **argv) { /* ... */ }
我记得在哪本书上看到过
这两个是不一样的int main(void) {
return 0;
}
看图片上,意思是这样?
下面这两个一样int main(void) { /* ... */ }
下面这两个不一样
我写代码试了一下,这代码确实没有警告$ cat main.c
#include <stdio.h>
int max();
int max(int a, int b) {
return a > b ? a : b;
}
int main(void) {
printf("%d\n", max(4, 3));
return 0;
}
$ gcc -g -Wall -o main main.c
$ ./main
4
$
这样的代码也没有警告$ cat main.c
#include <stdio.h>
int max();
int main(void) {
printf("%d\n", max(4, 3));
printf("%d\n", max());
return 0;
}
$ cat max.c
int max(int a, int b) {
return a > b ? a : b;
}
$ gcc -g -Wall -o main main.c max.c
$ ./main
4
-64510768
$
也就是说这两个是一样的?int main(void) {
return 0;
}
我英语基础不行,研究C标准有点吃力
不知道你的英语基础怎么样
欢迎讨论这个问题,^_^
c标准: http://www.open-std.org/jtc1/sc22/wg14/www/projects#9899
c99: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf |