void print_time(int hour, minute)
{ printf("%d:%d\n", hour, minute);
}定義相同類型的參數(shù)這樣會報錯,C語言為什么要這樣規(guī)定?
1 回答

Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗 獲得超7個贊
因為多個變量聲明是用 ;
分割的, 你可以很清楚的知道這是要聲明4個變量.
int a, b;char c, d;
你也可以分辨出下面是語法錯誤的.
int a, b; c, d;
但是由于多個不同類型函數(shù)聲明是用 ,
分割的. 如果允許合并聲明, 遇到如下情況, 你語法是沒有問題的, 但此處的 isHourStartFromZero 明顯應(yīng)該是個 boolean 值. 此時由于人為失誤少寫了 boolean 類型聲明, 但編譯器卻無法幫助我們判斷出錯誤, 這會增加代碼的錯誤率. 而這種錯誤本來是應(yīng)該在編碼階段就由編譯器靜態(tài)檢查出來的.
void print_time(int hour, minute, isHourStartFromZero) { if (isHourStartFromZero) { printf("%d:%d\n", hour + 1, minute); } else { printf("%d:%d\n", hour, minute); } }
- 1 回答
- 0 關(guān)注
- 974 瀏覽
添加回答
舉報
0/150
提交
取消