摘要:結(jié)果如下宏定義格式為其作用是將完全替換為。通常在引庫里的頭文件時(shí),優(yōu)先選擇。也可以使用引庫里的頭文件,此時(shí)可以在頭文件名字前加上頭文件的絕對路徑,以增加訪問速度。當(dāng)然,也是預(yù)處理指令。
printf("%s",__FILE__);//進(jìn)行編譯的文件 printf("%d", __LINE__);//文件當(dāng)前的行號 printf("%s", __DATE__);//文件被編譯的日期 printf("%s", __TIME__);//文件被編譯的具體時(shí)間 //printf("%d", __STDC__); //編譯器是否遵頊ASNI C協(xié)議,如果定義了則值為1,否則未定義該符號
幾種預(yù)定義符號極其作用如上,因?yàn)檫@里使用的是vs2013,沒有支持ASNI C,所以STDC未定義,在這里注釋掉,如果在gcc等編譯器下可以顯示。
結(jié)果如下
格式為:#define XXX ABC
其作用是將XXX完全替換為ABC。
#define MAX 123printf("%d",MAX);
執(zhí)行結(jié)果如下
為什么說是完全替換,請看如下代碼
#define ADD(A,B) A*Bprintf("%d",ADD(3+2,5));
完全替換為3+2*5而不是慣性思維以為的(3+2)*5
執(zhí)行結(jié)果如下
要想實(shí)現(xiàn)(3+2)*5,可以用括號括起來
#define ADD(A,B) ((A)*(B))printf("%d",ADD(3+2,5));
執(zhí)行結(jié)果如下
注意:
宏相對于函數(shù):
在編譯一個(gè)程序的時(shí)候我們?nèi)绻獙⒁粭l語句(一組語句)編譯或者放棄是很方便的。因?yàn)槲覀冇袟l件編譯指令。
類似if判斷語句,滿足條件就編譯,不滿足條件就不參與編譯。
用#if開始,以#endif結(jié)束。
#if 1//1為真 printf("%d",666);#endif
當(dāng)然,有if的地方就有else
#if 0//0為假 printf("%d",666);#else printf("%d", 888);#endif
條件編譯語句和宏一樣,都是在編譯階段完成了。
defined也可以實(shí)現(xiàn)條件編譯,其可以判斷輸入是否定義,如果定義則為真,編譯代碼。
#if defined(MAX)//MAX未定義,所以不會(huì)執(zhí)行 printf("%d",666);#endif printf("%d", 888);
當(dāng)然,和if-else語句一樣,#if和#endif也可以嵌套。
通常在編寫C/C++代碼時(shí),我們會(huì)引頭文件
頭文件的包含方式有兩種:
#include #include "stdio.h"
<>引頭文件的方式,編譯器只會(huì)在庫里尋找頭文件,而以“”方式引的頭文件,通常會(huì)現(xiàn)在當(dāng)前目錄下尋找頭文件,如果未找到,再去庫里尋找。
通常在引庫里的頭文件時(shí),優(yōu)先選擇<>。能免去在目錄下搜索頭文件的時(shí)間。而自己編寫的頭文件,則會(huì)使用“”。也可以使用“”引庫里的頭文件,此時(shí)可以在頭文件名字前加上頭文件的絕對路徑,以增加訪問速度。
當(dāng)然,#include也是預(yù)處理指令。此外還有#undef,#pragma等等,這里就不再過多介紹了,有興趣可以自行查閱。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/122329.html
摘要:還原的難度就在于變成模板了,因?yàn)槠渌氖裁吹仁窃獠粍?dòng)的哈哈,可是直接照抄最后鑒于本人能力有限,難免會(huì)有疏漏錯(cuò)誤的地方,請大家多多包涵,如果有任何描述不當(dāng)?shù)牡胤?,歡迎后臺(tái)聯(lián)系本人,有重謝 寫文章不容易,點(diǎn)個(gè)贊唄兄弟 專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學(xué)習(xí)吧研究基于 Vue版本 【2.5.17】 如果你覺得排版...
摘要:程序預(yù)處理本章節(jié)研究的是,源代碼文件是如何一步步得到一個(gè)可執(zhí)行程序的。如的語句被稱為預(yù)處理指令,還有注釋文本的刪除,都在此階段完成替換。目的是能夠?qū)⑺形募械拇a組合到一起成一個(gè)完整的程序。終止程序可以正常也可以意外終止程序。 ...
閱讀 3064·2021-10-12 10:12
閱讀 5402·2021-09-26 10:20
閱讀 1529·2021-07-26 23:38
閱讀 2820·2019-08-30 15:54
閱讀 1654·2019-08-30 13:45
閱讀 1970·2019-08-30 11:23
閱讀 3095·2019-08-29 13:49
閱讀 839·2019-08-26 18:23