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