以下是什么意思:
int main(void) {...}
VS
int main() {...}
我认为这int main() {...}意味着main不接收任何参数(从命令行),但是:
int main(int argc, char *argv[])
做。
但是什么int main(void) {...} 意思呢?什么是无效主张?
我看过这里,但是又有一个不同的问题。
TA贡献1723条经验 获得超8个赞
在C ++中,没有区别。
在C语言中,这种差异值得怀疑。有些人喜欢争辩说,从void技术上讲,后者的版本(没有)只是一个常见的实现扩展,由于该标准的措辞,不能保证该标准可以工作。但是,该标准明确指出,在函数定义中,一组空参数具有明确定义的行为:该函数不接受任何参数。因此,main的这种定义与标准中的以下描述匹配:
它[main]的返回类型应为int且不带参数。
但是,两者之间存在明显的区别:即,版本号没有void为该函数提供正确的原型:
// this is OK.
int main()
{
if (0) main(42);
}
// this requires a diagnostic to be shown during compiling
int main(void)
{
if (0) main(42);
}
哦,仅此void而已:在所有函数声明器中,含义如下:
(6.7.6.3p10)列表中
TA贡献1673条经验 获得超16个赞