亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言中為什么定義變量時可以把相同類型的變量列在一起,而定義參數卻不可以?

C語言中為什么定義變量時可以把相同類型的變量列在一起,而定義參數卻不可以?

C
收到一只叮咚 2018-12-18 19:46:37
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);
    }
}


查看完整回答
反對 回復 2018-12-18
  • 1 回答
  • 0 關注
  • 960 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號