如果我將兩個字符串傳遞給它,PLUS宏如何工作,它會將它們解析爲枚舉值? 在此先感謝。 對不起,我不能表達得太清楚。宏要打印一個字符串
#include "stdio.h"
#include <string>
#include <iostream>
using namespace std;
#define PRINT(Y) #Y
#define PLUS(X, Y) X+Y
int main(int argc, char *argv[])
{
typedef enum {
FIRST,
SECOND,
THIRD
};
const char *a="THIRD", *b="SECOND";
cout << PRINT(THIRD+SECOND is:) << PLUS(a, b) << endl;
return 0;
}
您正在使用[保留標識符](http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identifier)。而**從不**使字符串文字的非const char *指向。 – chris
爲什麼你需要一個宏?爲什麼'std :: cout << a'不夠? –
@JoeZ你真的抱怨他發佈了一個簡短的測試例子,只解釋他的問題,而不是他正在處理的整個代碼?來吧。 – Staven