在c语言中g()和g(void)有什么区别

如题所述

在C语言标准中g(void)表示没有参数,g()对应不确定个数的参数。
在C++中两者都表示没有参数。

// C code

extern int foo(); // Unspecified parameters
extern int bar(void); // No parameters

void baz()
{
foo(0); // Valid C, invalid C++
foo(1, 2); // Valid C, invalid C++

bar(); // Okay in both C and C++
bar(1); // Error in both C and C++
}

// C++ code

extern int xyz();

extern int xyz(void); // Same as 'xyz()' in C++,
// Different and invalid in C

因此为了使程序兼容两种语言的编译器,可以将函数显式地声明void参数。
// Compiles as both C and C++
int bosho(void)
{
...
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-13
没啥区别
顶多是如果用g(void)声明、定义的话,g(100)不算错

但如果声明、定义成g(),就不保证g(100)报不报错了本回答被提问者采纳
第2个回答  2011-08-14
没差别。
相似回答