二級C語言:預(yù)處理—宏定義和文件包含_第1頁
二級C語言:預(yù)處理—宏定義和文件包含_第2頁
二級C語言:預(yù)處理—宏定義和文件包含_第3頁
二級C語言:預(yù)處理—宏定義和文件包含_第4頁
二級C語言:預(yù)處理—宏定義和文件包含_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第八章第八章 預(yù)處理預(yù)處理2022-5-2宏定義和文件包含宏定義和文件包含宏定義:宏定義:define1.無參宏無參宏#define 標(biāo)識符標(biāo)識符 字符串字符串下面的宏定義?下面的宏定義?#define Pi 3.1415927#define M (y*y+3y)#define NAME XiaoMing;宏定義:宏定義:define1.無參宏無參宏#define 標(biāo)識符標(biāo)識符 字符串字符串#define M (y*y+3*y)main() int s,y;printf(input a number:);scanf(%d,&y);s=3*M+4*M+5*M;printf(s=%dn,s

2、);main() int s,y;printf(input a number: );scanf(%d,&y);s=3*(y*y+3*y) +4*(y*y+3*y)+5*(y*y+3*y);printf(s=%dn,s);宏定義:宏定義:define1.無參宏無參宏#define 標(biāo)識符標(biāo)識符 字符串字符串#define M y*y+3*ymain() int s,y;printf(input a number:);scanf(%d,&y);s=3*M+4*M+5*M;printf(s=%dn,s);main() int s,y;printf(input a number: );

3、scanf(%d,&y);s=3*y*y+3*y +4*y*y+3*y+5*y*y+3*y;printf(s=%dn,s);宏定義:宏定義:define1.無參宏無參宏1.宏的作用域宏的作用域 可以用可以用#undef結(jié)束一個宏定義結(jié)束一個宏定義#define PI 3.14159main() # undef PI2.引號里面的宏名不會被替換引號里面的宏名不會被替換#define PI 3.14159main() printf(“PI=%8f”,PI);3.宏的嵌套宏的嵌套#define PI 3.1415926#define S PI*y*y4.用宏定義表示數(shù)據(jù)類型用宏定義表示數(shù)據(jù)類

4、型#define INT int#define CHAR char#define PT int *INT a,b; CHAR c; PT d;PT e,f;int a,b; char c; int * d;int * e,f;宏定義:宏定義:define2.帶參數(shù)的宏定義帶參數(shù)的宏定義#define 宏名宏名(形參表形參表) 字符串字符串#define M(y) y*y+3*yk=M(5); k=5*5+3*5;宏定義:宏定義:define2.帶參數(shù)的宏定義帶參數(shù)的宏定義#define MAX(a,b) (ab)?a:b /注意注意MAX后沒空格后沒空格main() int x,y,max;

5、printf(input two numbers: ); scanf(%d,%d,&x,&y); max=MAX(x,y); printf(max=%dn,max);max=(xy)?x:y;宏定義:思考宏定義:思考2.帶參數(shù)的宏定義帶參數(shù)的宏定義請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)果嗎?果嗎? #define SQUARE(y) y*yA=SQUARE(5);A=5*5;A=SQUARE(m+5);A=m+5*m+5;宏定義:思考宏定義:思考2.帶參數(shù)的宏定義帶參數(shù)的宏定義請把下面帶參宏定義替換一下,想想看,是我

6、們想要的結(jié)請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)果嗎?果嗎? #define SQUARE(y) (y)*(y)A=SQUARE(5);A=5*5;A=SQUARE(m+5);A=(m+5)*(m+5);A=1/SQUARE(m+5);A=1/(m+5)*(m+5);宏定義:思考宏定義:思考2.帶參數(shù)的宏定義帶參數(shù)的宏定義請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)果嗎?果嗎? #define SQUARE(y) (y)*(y)A=SQUARE(5);A=5*5;A=SQUARE(m+5);A=(m+5)*(m+5);A=1/

7、SQUARE(m+5);A=1/(m+5)*(m+5);宏定義:思考宏定義:思考2.帶參數(shù)的宏和函數(shù)帶參數(shù)的宏和函數(shù)請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)請把下面帶參宏定義替換一下,想想看,是我們想要的結(jié)果嗎?果嗎? int SQUARE(int y) return (y)*(y);int i=1;A=SQUARE(+i);int i=1;A=SQUARE(+i);A=(+i)*(+i); #define SQUARE(y) (y)*(y)根據(jù)根據(jù)編譯環(huán)境編譯環(huán)境不同不同:A=2*3; 或或 A=3*2; 或或 A=3*3;A=SQUARE(1+1) =SQUARE(2) =2*2文件包含文件包含基本格式基本格式#include

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論