上一篇講到#include這個預編譯指令,還有個常用的預編譯指令:#define。它的表面意思是定義,通常被說成“定義常量”,但其真正作用是替換;
如:
#define SUCCESS 1
這整句話是定義一個宏替換,其中SUCCESS是宏名,后面的內容是值;
使用方式:
在接下來的程序中直接使用SUCCESS即可代表1了。但是SUCCESS不是一個變量,雖然外形像一個常量,它的值也確實不會改變。但是真正的常量是要會隨著編譯器走的,也就是在以后的調試中你可以打印某常量,如:const a=3;你是可以打印出a的值出來的。但是#define的東西在預編譯的時候就被替換掉了,也就是說在編譯的時候你已經看不到SUCCESS了,它被直接替換成1了,這也是和const的區別之一......這就是宏的使用,也是宏替換的使用。
下面來看#define到底有什么作用?
作用1:方便程序員來檢測。
因為很多情況下比如你都可能用到1,如果你直接寫成1,則很多地方都可能出現1,你后續來看,看到了1,很難馬上知道該處的1是什么含義,得結合上下文來看,這樣就讓自己變得麻煩了。此中情況你就可以用這些宏來表示,這樣可以“一目了然”,如你寫SUCCESS,你能一下子知道是操作成功的意思。
作用2:方便維護。
如:可以用來定義數組容量
#define MAX_SIZE 100
后續使用的時候可以這樣使用:
int a[MAX_SIZE];
以后如果容量少了,直接修改這個宏,則使用的地方都跟著得到最新的了,因為你會重新編譯...
作用3:簡化寫法
如:可以這樣的定義:
#define unsigned short UST
則后續的時候就可以這樣的寫了:
UST a;
作用4:它其實可以做其他的語言。
如:中文編程語言,易語言
如:這里用中文編程:
執行效果:
原因因為頭文件里這樣寫的:
因為根據上一節知道.h是可以隨便定義的...
這也就是為什么說C語言可以做其他編程語言的理由之一,如:C語言寫PHP解釋器,就可以造就出PHP編程語言了...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。