C++ #和##運算符


原文:https://blog.csdn.net/mitu405687908/article/details/51084441 
#和##運算符
#:構串操作符
構串操作符#只能修飾帶參數的宏的形參,它將實參的字符序列(而不是實參代表的值)轉換成字符串常量

#define STRING(x) #x#x#x
#define TEXT(x) "class"#x"Info"
//宏引用:
int abc = 100;
STRING(abc);
TEXT(abc);
//替換結果:
abcabcabc
classabcInfo


##:合並操作符
合並操作符##將出現在其左右的字符序列合並成一個新的標識符
注意:
使用合並操作符##時,自身的標識符必須預先有定義,否則編譯器會報“標識符未定義”的編譯錯誤。
字符序列合並成新的標識符不是字符串。

#define CLASS_NAME(name) class##name
#define MERGE(x,y) x##y##x
//宏引用:
CLASS_NAME(Timer)
MERGE(me,To)
//替換結果:
classTimer
meTome


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM