给定以下内容,我该如何得到一个输出为
ONE TWO THREE
的结果?我似乎无法想出在??
中应该填什么才能得到预期的连接行为。你不能使用#define
来定义单个空格。#include <iostream>
#define STRINGIFY(x) #x
#define STRINGIFYMACRO(y) STRINGIFY(y)
#define CONCAT2(X,Y) X ## Y
#define CONCAT(X,Y) CONCAT2(X,Y)
#define CAT \
ONE \
TWO
#define DOG \
THREE
#define BAT CONCAT(CONCAT(CAT,?? ),DOG)
int main()
{
std::cout << STRINGIFYMACRO(BAT) << std::endl;
return 0;
}
#ifdef __cplusplus
/#error wrong compiler
/#endif
- pmgchar *str = "one" " " "two" " " "three";
和char *str = "one two three";
是相同的。 - user3386109#define BAT CAT DOG
? - melpomene