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

正文內(nèi)容

c程序設計預處理命令-文庫吧資料

2024-10-22 15:50本頁面
  

【正文】 作為一個源文件單位進行編譯。圖 (B)為另一文件 ,文件內(nèi)容以 B表示。其一般形式為 inClude “文件名” 或 inClude 文件名 圖 圖 “文件包含”的含意。 “文件包含”處理 所謂“文件包含”處理是指一個源文件可以將另外一個源文件的全部內(nèi)容包含進來,即將另外的文件包含到本文件之中。 可以參照例 ,寫出各種輸入輸出的格式 (例如實型、長整型、十六進制整數(shù)、八進制整數(shù)、字符型等 ),把它們單獨編成一個文件,它相當一個“格式庫”,用 inClude命令把它“包括”到自己所編的程序中,用戶就可以根據(jù)情況各取所需了。以 S代表輸出一個字符串的格式符。以 D代表輸出一個整型數(shù)據(jù)的格式符。 } 運行時輸出以下結(jié)果: 1 12 123 1234 CHINA 程序中用 PR代表 printf。 PR(D4, a, B, C, D)。 PR(D2, a, B)。D=4。B=2。 char string[]=CHINA。 如果善于利用宏定義,可以實現(xiàn)程序的簡化,如事先將程序中的“輸出格式”定義好,以減少在輸出語句中每次都要寫出具體的輸出格式的麻煩。 … } max是函數(shù),在 main函數(shù)中調(diào)用 max函數(shù)才能求出 t的值。} main() { int a, B, C, D, t。 注意: MAX不是函數(shù),這里只有一個 main函數(shù),在 main函數(shù)中就能求出 t的值。 … t=MAX(a+b, c+d)。有些問題,用宏和函數(shù)都可以。而函數(shù)調(diào)用則占運行時間 (分配單元、保留現(xiàn)場、值傳遞、返回 )。 (5) 使用宏次數(shù)多時,宏展開后源程序長,因為每展開一次都使程序增長,而函數(shù)調(diào)用不使源程序變長。 } 運行情況如下: r= , l= , S= , v= 請注意,實參 r的值已知,可以從宏帶回 3個值 (l, S,v)。v=**r*r*r。 l=2*r。 scanf(“%f”, amp。 printf(r=%, l=%, S=%, v=%\n, r, l, S, v)。r)。V =*PI*R*R*R main() { float r, l, s, v。 例 define CIRCLE(r, l, s,v)L=2*PI*R。當然也不必定義 r的類型。凡遇 a均以 之,顯然不需定義類型。宏定義時,字符串可以是任何類型的數(shù)據(jù)。 (3) 對函數(shù)中的實參和形參都要定義類型,二者的類型要求一致,如不一致,應進行類型轉(zhuǎn)換。 (2) 函數(shù)調(diào)用是在程序運行時處理的,分配臨時的內(nèi)存單元。而使用帶參的宏只是進行簡單的字符替換。但是帶參的宏定義與函數(shù)是不同的。 有些讀者容易把帶參數(shù)的宏和函數(shù)混淆。如果在語句中有 area=S (a)。 (2) 在宏定義時,在宏名與帶參數(shù)的括弧之間不應加空格,否則將空格以后的字符都作為替代字符串的一部分。為了得到這個結(jié)果,應當在定義時,在字符串中的形式參數(shù)外面加一個括弧。請注意在 a+B外面沒有括弧,顯然這與程序設計者的原意不符。但是,如果有以下語句:area=S(a+B)。例 S(a),在展開時,找到 define命令行中的 S(r),將 S(a)中的實參 a代替宏定義中的字符串“ PI*r*r”中的形參 r,得到 PI*a*a。經(jīng)宏展開后為 area=*a*a。 printf(r=%f\narea=%f\n, a, area)。 a=。這樣就形成了置換的字符串,見圖 。 對帶參的宏定義是這樣展開置換的:在程序中如果有帶實參的宏 (如 S(3, 2)),則按 define命令行中指定的字符串從左到右進行置換。在程序中用了 s(3,2),把 2分別代替宏定義中的形式 圖 參數(shù) a、 b,即用 3*2代替 s(3, 2)。如: define s(a, b) a*b area=s(3, 2)。 帶參數(shù)的宏定義 不是進行簡單的字符串替換,還要進行參數(shù)替換。如例 printf函數(shù)內(nèi)有兩個 l字符,一個在雙引號內(nèi),它不被宏置換,另一個在雙引號外,被宏置換展開。 } 運行情況如下: L= s= 經(jīng)過宏展開后, printf函數(shù)中的輸出項 L被展開為2**, S展開為 **,printf函數(shù)調(diào)用語句展開為printf(L=%f\ns=%f\n, 2**,**)。 (7) 在進行宏定義時,可以引用已定義的宏名,可以層層置換。例如: define g main() { | G的有效范圍 … } undef g f1() { … } 由于 undef的作用,使 G的作用范圍在 undef行處終止,因此在 f1函數(shù)中, g不再代表 。通常,define命令寫在文件開頭,函數(shù)之前,作為文件一部分,在此文件范圍內(nèi)有效。 顯然出現(xiàn)語法錯誤。 經(jīng)過宏展開后,該語句為 area=。如:
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1