例:
#define Var1 35
static const int Var1( 35);
Run Code Online (Sandbox Code Playgroud)
因此,尽管#define替换到处,我用Var1用35在编译时(我假定使得编译时间稍微长一点,如果你有很多人,因为它解析的代码),使用static const int使编译器认为它是一个变量.
这是否意味着在使用static const int它时会增加我的程序的内存印记,因为它必须为所有这些常量使用内存,或者这个开销是否已经被编译器优化了?
我问的原因是因为我想知道是否更好,对于这样的情况,将它们作为static const ints在调试模式下(这样你可以在调试时轻松看到值)但是让它们#define处于发布模式,所以它会使程序变小.
我刚刚inline在微软网站上研究了C++关键字的使用和好处/陷阱,我理解了所有这些.
我的问题是:如果编译器评估函数以查看内联它们是否会导致代码更高效且inline关键字只是编译器的建议,为什么还要烦恼关键字呢?
编辑:很多人都抱怨我的使用(还修复了网站链接)__inline而不是inline.我想指出的__inline是微软特有的:所以它没有错,它不一定是你习惯的.
EDIT2:重新格式化问题以指示inline关键字(在所有C++中使用)而不是特定于Microsoft的__inline关键字.