溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

深入理解C語言的define

發布時間:2020-06-30 12:06:21 來源:網絡 閱讀:590 作者:ningcaichen66 欄目:編程語言

上一篇講到#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:它其實可以做其他的語言。

如:中文編程語言,易語言

如:這里用中文編程:

深入理解C語言的define

執行效果:

深入理解C語言的define

原因因為頭文件里這樣寫的:

深入理解C語言的define

因為根據上一節知道.h是可以隨便定義的...

這也就是為什么說C語言可以做其他編程語言的理由之一,如:C語言寫PHP解釋器,就可以造就出PHP編程語言了...


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女