我想知道是否可以在C++中定义一个宏,该宏定义了可以在以后的代码中使用的另一个宏。这是可能的,还是由g ++使用的预处理程序对此太有限制了?C++中的宏可以定义宏吗?
0
A
回答
5
不,你不能在另一个宏的扩展中定义一个宏。
1
不,你不能将宏定义为宏。
1
你可以这样做,它不是你正在寻找的东西,但它可能会有所帮助。
#ifdef ENABLE_MACRO_1
#define PRINT_MACRO(varName) \
std::cout<<varName<<std::endl;
#else
#define PRINT_MACRO(varName) \
//do nothing
#endif
所以,你可以定义根据其定义中定义的另一个preprecursor条件的宏。
1
预处理程序只在源代码上传递一次,所以这是不可能的。但是,您可以使用外部工具在编译之前执行一些预处理,例如m4。
相关问题
- 1. sweet.js宏可以定义其他宏吗?
- 2. 我可以使用C中的宏定义宏吗?
- 3. 宏定义宏
- 4. RELEASE C++宏定义
- 5. 在C和C++中,我可以使用包含空格的宏定义吗?
- 6. C预处理器宏定义宏
- 7. 我可以检查预编译中定义的宏吗?
- 8. 增量宏定义可能吗?
- 9. C++ 11预定义的宏
- 10. Microsoft C++预定义的宏
- 11. 在编译C代码的过程中可以看到已定义的宏吗?
- 12. 球拍中的宏定义宏?
- 13. 我可以使用宏代码中的Outlook加载宏吗?
- 14. C宏定义了可变长度值
- 15. 宏定义恶意宏
- 16. 用户可以定义特殊形式的宏吗?
- 17. 可以定义具有goto语句和标签的宏吗?
- 18. 定义一个宏用C
- 19. C++宏定义不清
- 20. 自定义C++声明宏
- 21. C++宏定义包括点?
- 22. C++ - 宏定义指令
- 23. C宏重新定义
- 24. C宏/#定义缩进?
- 25. Objective-C宏重新定义
- 26. 宏重定义和C++
- 27. C宏保护定义
- 28. 在OSX中定义了“BYTE_ORDER”宏吗?
- 29. 可以cljc单文件宏定义与clojurescript一起工作吗?
- 30. 用户可以定义一个自动宏变量吗?
它不是“g ++使用的预处理程序”,它不够强大,它是C++语言本身不允许的。如果你解释了你想完成的任务,我肯定这里的人可以想出一个解决方案。 – Lindydancer
你怎么会被这个“限制”?分享你想要完成的事情。 –