是否可以定义宏
write_foo(A);
and
read_foo();
这样:
WRITE_FOO(hello);
code_block_1;
READ_FOO();
code_block_2;
READ_FOO();
WRITE_FOO(world);
code_block_3;
READ_FOO();
code_block_4;
READ_FOO();
扩展为:
code_block_1;
hello;
code_block_2;
hello;
code_boock_3;
world;
code_block_4;
world;
?
谢谢!
最佳答案
宏不能重新定义其他宏,但您可以手动进行。
#define FOO hello
FOO // expands to hello
#undef FOO
#define FOO world
FOO // expands to world
#undef FOO
#define FOO blah
FOO // expands to blah
不幸的是,#define
+ #undef
组合不能封装在我所知道的任何其他结构中。
关于带内存的 C++ 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506167/