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

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

【編程初入門】 看C Primer Plus 看到剛開頭函數定義的時候有個小問題,感覺函數有重復定義

【編程初入門】 看C Primer Plus 看到剛開頭函數定義的時候有個小問題,感覺函數有重復定義

C
慕蓋茨4494581 2019-02-12 22:15:51
本人自學編程還沒多久,遇到問題比較初級,希望各位路過的大神多多指點,不喜勿噴哈。代碼如下:/*在一個文件中使用兩個函數*/#include <stdio.h>void butler (void);  /* ISO/ANSI C函數原型*/int main (void){    printf("I will summon the butler function.\n");     butler();    printf("Yes. Bring me some tea and writeable CD-ROMS.\n");    return 0; }void butler (void) /*   函數定義的開始   */{    printf("You rang, sir?\n") }我的問題是:void butler (void); /* ISO/ANSI C函數原型*/究竟這一行代碼起到什么作用? 以前學過一點JAVA和python 印象中里面沒有類似這樣的東西
查看完整描述

1 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

C 語言對函數要求 先聲明后定義再調用

void butler (void); /* ISO/ANSI C函數原型*/ 這個是聲明,告知編譯器我需要使用該函數

void butler (void) /*   函數定義的開始   */{    printf("You rang, sir?\n");
}

這個是定義

但是如果調用發生在定義之后,那么可以省略聲明這一步。

/*在一個文件中使用兩個函數*/#include <stdio.h>void butler (void) /*   函數定義的開始   */{    printf("You rang, sir?\n");
}int main (void){    printf("I will summon the butler function.\n");
    butler();    printf("Yes. Bring me some tea and writeable CD-ROMS.\n");    return 0;
}

但是在多文件中函數互相調用、庫函數之類的情況下,函數如果沒有聲明,編譯器會報錯。


查看完整回答
反對 回復 2019-02-12
  • 1 回答
  • 0 關注
  • 603 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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