freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

在將一個(gè)c源程序轉(zhuǎn)換為可執(zhí)行程序的過(guò)程中-在線瀏覽

2024-08-17 13:33本頁(yè)面
  

【正文】 句格式:ifndef __FILE_H__define __FILE_H__include endifdefine __FILE_H__ 中的宏就不帶任何參數(shù), 也不擴(kuò)展為任何標(biāo)記. 這經(jīng)常用于包含頭文件.要調(diào)用該宏, 只需在代碼中指定宏名稱, 該宏將被替代為它被定義的內(nèi)容.函數(shù)宏帶參數(shù)的宏也被稱為函數(shù)宏. 利用宏可以提高代碼的運(yùn)行效率: 子程序的調(diào)用需要壓棧出棧, 這一過(guò)程如果過(guò)于頻繁會(huì)耗費(fèi)掉大量的CPU運(yùn)算資源. 所以一些代碼量小但運(yùn)行頻繁的代碼如果采用帶參數(shù)宏來(lái)實(shí)現(xiàn)會(huì)提高代碼的運(yùn)行效率.函數(shù)宏的參數(shù)是固定的情況函數(shù)宏的定義采用這樣的方式: define name( args ) tokens其中的args和tokens都是可選的. 它和對(duì)象宏定義上的區(qū)別在于宏名稱之后不帶括號(hào).注意, name之后的左括號(hào)(必須緊跟name, 之間不能有空格, 否則這就定義了一個(gè)對(duì)象宏, 它將被替換為 以(開(kāi)始的字符串. 但在調(diào)用函數(shù)宏時(shí), name與(之間可以有空格..define mul(x,y) ((x)*(y))注意, 函數(shù)宏之后的參數(shù)要用括號(hào)括起來(lái), 看看這個(gè)例子:.define mul(x,y) x*ymul(1, 2+2)。.define insert(stmt) stmtinsert ( a=1。) 相當(dāng)于在代碼中加入 a=1。) 就有問(wèn)題了: 預(yù)處理器會(huì)提示出錯(cuò): 函數(shù)宏的參數(shù)個(gè)數(shù)不匹配. 預(yù)處理器把,視為參數(shù)間的分隔符. insert ((a=1, b=2。問(wèn)題.:define swap(x,y) { unsigned long _temp=x。 y=_tmp}如果這樣調(diào)用它: swap(1,2)。 1=2。 明顯后面的。 x=y。 將被替換為:do { unsigned long _temp=1。 2=_tmp} while (0)。, 最好在調(diào)用后添加注釋說(shuō)明.:define incr(v, low, high) \ for ((v) = (low),。 (v)++)只能以這樣的形式被調(diào)用: incr(a, 1, 10) /* increase a form 1 to 10 */函數(shù)宏中的參數(shù)包括可變參數(shù)列表的情況C99標(biāo)準(zhǔn)中新增了可變參數(shù)列表的內(nèi)容. 不光是函數(shù), 函數(shù)宏中也可以使用可變參數(shù)列表.define name(args, ...) tokensdefine name(...) tokens...代表可變參數(shù)列表, 如果它不是僅有的參數(shù), 那么它只能出現(xiàn)在參數(shù)列表的最后. 調(diào)用這樣的函數(shù)宏時(shí), 傳遞給它的參數(shù)個(gè)數(shù)要不少于參數(shù)列表中參數(shù)的個(gè)數(shù)(多余的參數(shù)被丟棄). 通過(guò)__VA_ARGS__來(lái)替換函數(shù)宏中的可變參數(shù)列表. 注意__VA_ARGS__只能用于函數(shù)宏中參數(shù)中包含有...的情況..ifdef DEBUGdefine my_printf(...) fprintf(stderr, __VA_ARGS__)elsedefine my_printf(...) printf(__VA_ARGS__)endiftokens中的__VA_ARGS__被替換為函數(shù)宏定義中的...可變參數(shù)列表. 注意在使用define時(shí)候的一些常見(jiàn)錯(cuò)誤:define MAX = 100define MAX 100。 的使用要值得注意. 再就是調(diào)用函數(shù)宏是要注意, 不要多給出。關(guān)于定義宏的另外一些問(wèn)題(1) 宏可以被多次定義, 前提是這些定義必須是相同的. 這里的相同要求先后定義中空白符出現(xiàn)的位置相同, 但具體的空白符類型或數(shù)量可不同, 比如原先的空格可替換為多個(gè)其他類型的空白符: 可為tab, 注釋....define NULL 0define NULL /* null pointer */ 0上面的重定義是相同的, 但下面的重定義不同:define fun(x) x+1define fun(x) x + 1 或: define fun(y) y+1如果多次定義時(shí), 再次定義的宏內(nèi)容是不同的, gcc會(huì)給出NAME redefined警告信息.應(yīng)該避免重新定義函數(shù)宏, 不管是在預(yù)處理命令中還是C語(yǔ)句中, 最好對(duì)某個(gè)對(duì)象只有單一的定義. 在gcc中, 若宏出現(xiàn)了重定義, gcc會(huì)給出警告.(2) 在gcc中, 可在命令行中指定對(duì)象宏的定義:.$ gcc Wall DMAX=100 o tmp define MAX 100.那么, , 那么再在gcc調(diào)用命令中使用
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1