簡體   English   中英

c語言中“#@”的用途是什么?

[英]what is the use of “#@” in c language?

#符號用於預處理程序指令的開頭( #ifdef#ifdef #define等)。 #也用作字符串化運算符。

##是令牌粘貼操作符。

然后在網上測驗我看到了這個:

#define MAKECHAR(operand) #@operand

什么操作符#@和它用於什么?

它類似於stringify標記#但是對於字符,但它不是標准化的。 例如,clang / llvm不支持它。

舉例來說:

#define MESSAGE(x) printf("%s: %d\n", #x, x)

int main(){
    int i = 5;
    MESSAGE(i); // expands to printf("%s: %d\n", "i", x)
    return 0;
}

輸出是:

i: 5

使用支持#@的編譯器,您可以編寫:

#define MESSAGE(x) printf("%c: %d\n", #@x, x)

int main(){
    int i = 5;
    MESSAGE(i);  // expands to printf("%c: %d\n", 'i', x)
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM