考虑这两个函数定义:
void foo() { }
void foo(void) { }
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别吗?如果没有,为什么void那里的论点?美学原因?
根据最新的C标准,在没有参数的情况下定义函数的正确方法是什么:int main()或int main(void)?
我试图让参数信息不可修改.
#include <stdio.h>
#include <stdlib.h>
int main(const int argc, const char* const argv[]) {
//argc = 1; // error: assignment of read-only parameter 'argc'
//argv[0] = "argv"; // error: assignment of read-only location '*argv'
//argv[0][0] = 'a'; // error: assignment of read-only location '**argv'
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
现在我这样做的时候
argv = NULL; // no compile-time error
Run Code Online (Sandbox Code Playgroud)
编译器使沉默.
该声明实际上做了什么?我怎样才能禁止我的代码呢?