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

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