若是在C++里,沒有區(qū)別,但是,對(duì)于早期C程序的函數(shù)而言,聲明的參數(shù)列表為空或者void,都是一個(gè)意思——參數(shù)任意!也就是說,你可以像該函數(shù)傳遞任何參數(shù),編譯器不做類型檢查!某些情況下,這是非常危險(xiǎn)的。因此,在C++里,編譯器對(duì)此的解釋就是:該函數(shù)沒有任何參數(shù)!如果你像該函數(shù)傳遞參數(shù),編譯器會(huì)報(bào)錯(cuò)。
舉個(gè)例子:
C中:
void fun(void);
調(diào)用時(shí),你可以傳遞任何參數(shù);例如:
int a; float f; char c;
fun(a); fun(f); fun(c);
都是對(duì)的。因?yàn)榫幾g器不會(huì)檢查該函數(shù)的參數(shù)都是什么。
C++中:你只能這么調(diào)用該函數(shù):
fun();
不能有任何參數(shù)! 否則報(bào)錯(cuò)。
舉個(gè)例子:
C中:
void fun(void);
調(diào)用時(shí),你可以傳遞任何參數(shù);例如:
int a; float f; char c;
fun(a); fun(f); fun(c);
都是對(duì)的。因?yàn)榫幾g器不會(huì)檢查該函數(shù)的參數(shù)都是什么。
C++中:你只能這么調(diào)用該函數(shù):
fun();
不能有任何參數(shù)! 否則報(bào)錯(cuò)。