[英]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.