4
因此,當考慮讓我的定義宏工作,我發現了#
和##
宏助手,並用它們來簡化我的宏。宏的關鍵部分將變量設置爲包含變量名稱的字符串(但不包括變量名稱)。作爲一個簡單的例子,我們來看一個名爲SET(X)
的宏,它應該將SET(something)
擴展爲something = "pre_something"
。是否有一個宏的前綴和引用C宏參數的一個宏的方法
到目前爲止,我發現的唯一方法是使用兩個宏,如#define QUOTE(X) #X
和#define SET(X) X = QUOTE(pre_##X)
。但是,使用多個宏看起來過多,並且可能會導致進一步的宏擴展(我認爲)出現問題。是否有一種更乾淨,單線的做同樣的事情?