C++標準列出允許的形式main
。它沒有列出int main(void)
作爲允許的形式。但是,一般說int main(void)在C++中有效嗎?
參數列表(無效),相當於空參數列表
是int main(void)
允許的形式?
C++標準列出允許的形式main
。它沒有列出int main(void)
作爲允許的形式。但是,一般說int main(void)在C++中有效嗎?
參數列表(無效),相當於空參數列表
是int main(void)
允許的形式?
從N3936標準草案:
3.6起始和終止
3.6.1主要功能
2的實現不應預先定義的主要功能。這個 函數不應該被重載。它應該有一個類型爲int的聲明返回類型 ,否則其類型是實現定義的。一個 實現應允許兩個
- 的函數(INT,指針字符指針)返回int
作爲主要的類型( - 的()返回int和
的函數8.3.5)。
然後:
8.3.5功能
4 ... 由 非依賴型空隙的單個未命名參數的參數列表是等效於一個空參數名單。 ...
因此,
int main(void)
是main
功能的允許形式。
此外@Some程序員的紈絝子弟和@埃德加的回答進行評論,這是說明了給定的C++和C標準差N3936草案的一部分:
C.1.7條款8:聲明符[diff.decl]
8.3.5
變化:在C++中,用空的參數列表中聲明的函數採用 沒有參數。在C中,一個空的參數列表表示函數參數的編號和 未知。
例如:
int f(); //指用C用C
INT F(空隙)++
// INT F(未知)
[可能是?](https://stackoverflow.com/ a/44859345/2752075) – HolyBlackCat
在C++中使用空參數列表與使用'void'相同。兩者是平等的和可互換的。這是與C語言有很大差異的地方之一,其中一個沒有任何參數聲明的函數(i..e是一組空括號'()')可以接受任意數量的未指定參數。 –
@HolyBlackCat關閉作爲可能嗎?這只是這個問題的一個子集 –