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

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
因為多個變量聲明是用 ;
分割的, 你可以很清楚的知道這是要聲明4個變量.
int a, b;char c, d;
你也可以分辨出下面是語法錯誤的.
int a, b; c, d;
但是由于多個不同類型函數聲明是用 ,
分割的. 如果允許合并聲明, 遇到如下情況, 你語法是沒有問題的, 但此處的 isHourStartFromZero 明顯應該是個 boolean 值. 此時由于人為失誤少寫了 boolean 類型聲明, 但編譯器卻無法幫助我們判斷出錯誤, 這會增加代碼的錯誤率. 而這種錯誤本來是應該在編碼階段就由編譯器靜態檢查出來的.
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 關注
- 960 瀏覽
添加回答
舉報
0/150
提交
取消