#include
#define name "gigathink,inc."
#define address "101 megabuck plaza"
#define place "megapolis, ca 94904"
#define width 40
void
starbar
(void);
//函式原型
intmain
(void
)void
starbar
(void
)//定義函式
首先解釋一下#define name "gigathink,inc."
,這裡我們叫做巨集,巨集的作用主要為替換,將後面的內容用前面來進行替換。所以該程式中所有name的內容都被翻譯成為gigathink,inc.。
巨集也可以定義為:#define m (x*y)//用m代表x*y
!!一般我們為了定義巨集時,為了區別其他變數,要用大寫字母,但是也可以用小寫字母,只不過不推薦用小寫字母。
在程式中如果我們未定義巨集,如果修改時就需要乙個乙個修改,效率十分低下,如果我們使用巨集進行編輯,修改時只需要修改巨集對應的值便可以修改程式內容,效率提公升。
函式原型應當在使用函式前定義,告訴編譯函式型別,並且要在函式呼叫前宣告。
函式呼叫表明在這裡使用函式。
定義函式表明怎麼執行。
在本程式中,第乙個void starbar(void)為函式原型,應當在呼叫前宣告。在後面的starbar()中為呼叫函式,呼叫後面的定義函式。第二個void starbar(void)為定義函式,函式定義當呼叫starbar()時,輸出40個「*」。
例如:
int imin(int n,
int m);
int main (void)
intimin
(int n,
int m)
因為我的返回值min是int型別,所以定義時imin時應當定義為int型別。
void dibs (
int x,y,z)
//無效的定義
void dibs(int x,int y,int z)//有效的定義
以上是我的總結,希望對大家有所收穫 46 函式與巨集分析
注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 函式與巨集 巨集or函式?define reset p,len while len 0 char p len 0 void reset void p,int len 二 函...
優化程式之 巨集與內聯函式
內聯函式從 源 層看,有函式的結構,而在編譯後,卻不具備函式的性質。內聯函式不是在呼叫時發生控制轉移,而是在編譯時將函式體嵌入在每乙個呼叫處。編譯時,類似巨集替換,使用 函式體替換呼叫處的函式名。一般在 中用inline修飾,但是能否形成內聯函式,需要看 編譯器對該函式定義的具體處理。帶有引數的巨集...
Oracle過程與函式的區別分析
oracle過程和函式相信大家都比較了解,下面就為您詳細介紹oracle過程和函式二者之間程式設計客棧的區別,希望可以讓您對oracle過程和函式有更深的認識。oracle過程和函式都以編譯後的形式存放在資料庫中,函式可以沒有引數也可以有ehzds多個引數並有乙個返回值。過程有零個或多個引數,沒有返...