小编Edw*_*ard的帖子

将常量变量定义为使程序更小吗?

例:

#define Var1 35
static const int Var1( 35);
Run Code Online (Sandbox Code Playgroud)

因此,尽管#define替换到处,我用Var135在编译时(我假定使得编译时间稍微长一点,如果你有很多人,因为它解析的代码),使用static const int使编译器认为它是一个变量.

这是否意味着在使用static const int它时会增加我的程序的内存印记,因为它必须为所有这些常量使用内存,或者这个开销是否已经被编译器优化了?

我问的原因是因为我想知道是否更好,对于这样的情况,将它们作为static const ints在调试模式下(这样你可以在调试时轻松看到值)但是让它们#define处于发布模式,所以它会使程序变小.

c++ constants c-preprocessor

5
推荐指数
1
解决办法
614
查看次数

为什么要在C++中使用'inline'关键字?

我刚刚inline微软网站上研究了C++关键字的使用和好处/陷阱,我理解了所有这些.

我的问题是:如果编译器评估函数以查看内联它们是否会导致代码更高效且inline关键字只是编译器的建议,为什么还要烦恼关键字呢?

编辑:很多人都抱怨我的使用__inline而不是inline.我想指出的__inline是微软特有的:所以它没有错,它不一定是你习惯的.(还修复了网站链接)

EDIT2:重新格式化问题以指示inline关键字(在所有C++中使用)而不是特定于Microsoft的__inline关键字.

c++ inline compiler-optimization

2
推荐指数
1
解决办法
264
查看次数