深入理解C語言的define

上一篇講到#include這個預(yù)編譯指令,還有個常用的預(yù)編譯指令:#define。它的表面意思是定義,通常被說成“定義常量”,但其真正作用是替換;

成都創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計,網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),小程序制作,十多年建站對資質(zhì)代辦等多個行業(yè),擁有豐富的網(wǎng)站運維經(jīng)驗。

如:

#define SUCCESS 1

這整句話是定義一個宏替換,其中SUCCESS是宏名,后面的內(nèi)容是值;

使用方式:

在接下來的程序中直接使用SUCCESS即可代表1了。但是SUCCESS不是一個變量,雖然外形像一個常量,它的值也確實不會改變。但是真正的常量是要會隨著編譯器走的,也就是在以后的調(diào)試中你可以打印某常量,如:const a=3;你是可以打印出a的值出來的。但是#define的東西在預(yù)編譯的時候就被替換掉了,也就是說在編譯的時候你已經(jīng)看不到SUCCESS了,它被直接替換成1了,這也是和const的區(qū)別之一......這就是宏的使用,也是宏替換的使用。

下面來看#define到底有什么作用?

作用1:方便程序員來檢測。

因為很多情況下比如你都可能用到1,如果你直接寫成1,則很多地方都可能出現(xiàn)1,你后續(xù)來看,看到了1,很難馬上知道該處的1是什么含義,得結(jié)合上下文來看,這樣就讓自己變得麻煩了。此中情況你就可以用這些宏來表示,這樣可以“一目了然”,如你寫SUCCESS,你能一下子知道是操作成功的意思。

作用2:方便維護(hù)。

如:可以用來定義數(shù)組容量

#define MAX_SIZE 100

后續(xù)使用的時候可以這樣使用:

int a[MAX_SIZE];

以后如果容量少了,直接修改這個宏,則使用的地方都跟著得到最新的了,因為你會重新編譯...

作用3:簡化寫法

如:可以這樣的定義:

#define unsigned short UST

則后續(xù)的時候就可以這樣的寫了:

UST a;

作用4:它其實可以做其他的語言。

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

如:這里用中文編程:

深入理解C語言的define

執(zhí)行效果:

深入理解C語言的define

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

深入理解C語言的define

因為根據(jù)上一節(jié)知道.h是可以隨便定義的...

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

網(wǎng)頁標(biāo)題:深入理解C語言的define
URL分享:http://bm7419.com/article14/psdhge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站維護(hù)App設(shè)計、網(wǎng)站設(shè)計、定制網(wǎng)站、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)