c語言定義與聲明
發布時間: 2023-11-02 23:48:03
『壹』 在c語言中,什麼是聲明、定義、初始化有什麼區別
1.聲明和定義是針對函數的概念:
包含函數實現的叫做函數的定義,一般位於.c文件中,如:
int func(int a){return a+1;}
不包含函數實現,只包含函數名的叫做函數的聲明,一般位於.h文件中。如:
int func(int a);
2.定義和初始化是針對變數的概念:
int a;就是變數的定義
a=0;就是變數的初始化
『貳』 C語言中函數什麼時候聲明,什麼時候定義最好舉例說明。
函數可以在調用函數的函數(比如main函數)之前定義,這樣就無需聲明了;
舉例:
intadd(intx,inty){returnx+y;}//在編譯程序編譯到main的調用add之處時,由於已經編譯過add的函數了,因此編譯程序已經知曉調用規則,因此可以省略聲明語句
voidmain(){intx=5,y=6,c;c=add(x,y);printf("%d ",c);}
如果函數在調用函數的函數之後定義,為了通知編譯程序要調用函數的格式,需要在調用函數的函數前添加函數的聲明。
舉例:
intadd(intx,inty);//函數聲明也可以簡單地寫成intadd(int,int);通知編譯程序main中調用add的規則即可
voidmain(){intx=5,y=6,c;c=add(x,y);printf("%d ",c);}
intadd(intx,inty){returnx+y;}
『叄』 c語言的定義與聲明是什麼
聲明就是聲明一下我用到的變數或者類型,變數或者類型的實際定義並不一定在本文件內。
給變數分配了空間才叫做定義,否則就是聲明
比如extern int a; 是聲明,a的定義是在別處,這里並沒有為a分配空間。
比如int a;即是定義
函數以及類型,聲明就是用函數或者類型的頭部來聲明
比如 struct x;聲明 struct x{};定義
比如 int fun();聲明 int fun(){}定義
『肆』 c語言中函數定義和聲明有什麼區別
從C語言編譯器的角度來看,函數聲明只是一種協議,它告訴了調用者在調用這個函數之前需要給他什麼參數,一般參數是通過寄存器或者壓棧的方式傳給被調用函數的,具體這些參數如何使用以及返回什麼值到相應的寄存器里返回給調用者則是定義所描述的。
熱點內容