【C語言-11】長程式碼的簡化(巨集定義)?

在C語言中,可以通過自定義函式來簡化一段程式碼,其實在C語言中有一個專門用來簡化程式碼的方法,那就是在開頭定義巨集。

【C語言-11】長程式碼的簡化(巨集定義)

工具/原料

C-Free

例:

開啟C-Free,新建檔案。

7 【C語言-00】程式設計軟體C-Free的安裝,註冊及使用

【C語言-11】長程式碼的簡化(巨集定義)

輸入以下內容:

#include

#include

#define BLUE SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE FOREGROUND_INTENSITY);

#define RED SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED FOREGROUND_INTENSITY);

#define GREEN SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN FOREGROUND_INTENSITY)

main()

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN FOREGROUND_INTENSITY) ;

printf("更改為:綠色");

BLUE printf("\n藍色");

RED printf("\n紅色");

GREEN ;printf("\n綠色\n");

}

【C語言-11】長程式碼的簡化(巨集定義)

執行結果如圖:

【C語言-11】長程式碼的簡化(巨集定義)

P.S.如下的這條命令是更改控制檯字型顏色的程式碼,詳見《【C語言-22】讓控制檯輸出不同顏色的字元》

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN FOREGROUND_INTENSITY) ;

0 【C語言-22】讓控制檯輸出不同顏色的字元

說明:

巨集宣告的形式為:

#define XXX abcdedfg

這樣聲明後XXX便完全替代了abcdefg;

如例中BLUE完全替代了SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE FOREGROUND_INTENSITY);

【C語言-11】長程式碼的簡化(巨集定義)

其效果與寫出完整程式碼一模一樣:

P.S.例子中主函式中的第一行程式碼是為了與巨集定義作比較,以便於演示,實際是不需要的。

【C語言-11】長程式碼的簡化(巨集定義)

另外,巨集替代的是所有字元程式碼,包括標點符號,因此如果巨集中沒有分號,在程式碼中記得加上,如圖:

【C語言-11】長程式碼的簡化(巨集定義)

相關問題答案