C語(yǔ)言-預(yù)處理器

宏替換

可以預(yù)定義代碼塊什么的,還可以傳遞參數(shù)

#include "csapp.h"
#define NAME(A) "hello"#A
#define FOR(i,start,end) for(int i=start;i<=end;i++)
#define MAX(A,B) A+B+9
#if 1
#define P printf
#endif
#define swap(t,x,y) {int t;t=x;x=y;y=t;}
int main()
{
    int a=1;
    int b=2;

    swap(t,a,b);
    P("%d->%d\n",a,b);
    FOR(k,1,2) {
        puts(NAME(TOm));
        P("%d->%d\n",k,MAX(k,k));
    };
}

條件包含

#if 對(duì)常量表達(dá)式進(jìn)行求值

#if expr
#define P printf
#endif

只有expr是0時(shí)才不包含其中的定義。
#ifndef用來(lái)測(cè)試某個(gè)名字是否已經(jīng)定義,經(jīng)常用于頭文件,避免多次包含同一頭文件

#ifndef OS_CSAPP_H
#define OS_CSAPP_H

#include <stdio.h>
#endif //OS_CSAPP_H

程序塊結(jié)構(gòu)

    {
        int t;
        t = a;
        a = b;
        b = t;
    };

其中t對(duì)外部不可見(jiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容