我想知道是否有关于在c ++语言中使用define的官方建议,最好在标题或源文件中定义吗?
我要求知道是否存在任何官方标准,或者它是否仅仅是主观的...我不需要整套标准,但源头或指南的链接就足够了。
后期编辑:
const
和constexpr
成为现状这一事实的解释是什么,我指的是define
用作避免重复输入的方法,我在脑海中清楚地表明程序员应该充分利用c ++ oop编译器的潜力。另一方面,如果它如此恐惧,为什么不完全删除它?我的意思是,据我所知,define
仅用于条件编译,尤其是在使相同的代码在不同的编译器上工作时。
次要的,微小的问题,错误的可能性也是java没有真正的C风格define
的主要原因?
答案 0 :(得分:2)
C ++的#define
使用指南的简短列表,第2,4,6和7点实际上解决了这个问题:
#define
而不是const
,constexpr
,或内联或模板功能等而是。assert()
function)#define
宏的某些用法,这意味着{。1}}就在.cpp文件中的函数之前,然后是函数之后的#define
。#undef
的确切用例确定它是否应位于#define
或.h
文件中。但请注意,大多数用例实际上违反了上述3.并且您实际上不应该使用.cpp
。