通過程式分析巨集,函式原型與定義函式

2021-10-17 11:33:23 字數 1182 閱讀 6323

#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多個引數並有乙個返回值。過程有零個或多個引數,沒有返...