把注釋去掉即可,沒(méi)有其它錯(cuò)誤:
安陽(yáng)縣網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
//---------------------------------------------------------------------------
#include "stdio.h"
#define exchange(a,b) { int t;\
t=a;\
a=b;\
b=t;\
}
void main(void)
{
int x=10;
int y=20;
printf("x=%d; y=%d\n",x,y);
exchange(x,y);
printf("x=%d; y=%d\n",x,y);
}
//---------------------------------------------------------------------------
#define exchange(a,b) { \
int t;\
t=a;\
a=b;\
b=t;\
}
這里有個(gè)問(wèn)題一定要注意:\后面要緊跟回車(chē),不能有空格,去掉空格,就不會(huì)報(bào)錯(cuò)了
exchange(x,y); 你試試改成exchange(x,y); ?
t=a應(yīng)該沒(méi)有錯(cuò)吧
1、簡(jiǎn)單的define定義#define MAXTIME 1000
一個(gè)簡(jiǎn)單的MAXTIME就定義好了,它代表1000,如果在程序里面寫(xiě)if(iMAXTIME){.........}
編譯器在處理這個(gè)代碼之前會(huì)對(duì)MAXTIME進(jìn)行處理替換為1000。
這樣的定義看起來(lái)類(lèi)似于普通的常量定義CONST,但也有著不同,因?yàn)閐efine的定義更像是簡(jiǎn)單的文本替換,而不是作為一個(gè)量來(lái)使用,這個(gè)問(wèn)題在下面反映的尤為突出。
2、define的“函數(shù)定義”
define可以像函數(shù)那樣接受一些參數(shù),#define max(x,y) (x)(y)?(x):(y);
這個(gè)定義就將返回兩個(gè)數(shù)中較大的那個(gè),看到了嗎?因?yàn)檫@個(gè)“函數(shù)”沒(méi)有類(lèi)型檢查,就好像一個(gè)函數(shù)模板似的,當(dāng)然,它絕對(duì)沒(méi)有模板那么安全就是了??梢宰鳛橐粋€(gè)簡(jiǎn)單的模板來(lái)使用而已。
C語(yǔ)言中無(wú)參宏定義的一般形式:
#define 宏名 字符串,其中的“#”表示這是一條預(yù)處理命令。凡是以“#”開(kāi)頭的均為預(yù)處理命令?!癲efine”為宏定義命令?!皹?biāo)識(shí)符”為所定義的宏名。“字符串”可以是常數(shù)、表達(dá)式、格式串等。
例如: #define M (a+b) 它的作用是指定標(biāo)識(shí)符M來(lái)代替表達(dá)式(a+b)。在編寫(xiě)源程序時(shí),所有的(a+b)都可由M代替,而對(duì)源程序作編譯時(shí),將先由預(yù)處理程序進(jìn)行宏代換,即用(a+b)表達(dá)式去置換所有的宏名M,然后再進(jìn)行編譯。