我很好奇这些是否会影响编译速度:
int y;
struct foo {
void bar() {
x = y;
}
int x;
};
大概更快的版本:
int y;
struct foo {
int x;
void bar() {
this->x = ::y;
}
};
第二次编译速度更快吗?如果是这样,多少钱?
(如果重要的话我使用GCC)
答案 0 :(得分:1)
听起来你真正关心的是编写可能编译速度慢的大型程序的最佳实践,而不仅仅是减少编译这么小程序所花费的几毫秒。
重要的是让您的程序尽可能清晰,以避免混淆任何人阅读它(首先,你自己)。毫秒的编译时间不会像混乱时间那样快。
一般来说,使用编译时数据结构和大量文件的元编程(模板和宏)会使编译器变慢,而不是在这里和那里检查几个范围内的名称。请记住,您需要使用更简单的限定查找来解析更多令牌。因此,这两种做法都不可能产生一致的结果,更不用说重要了。
答案 1 :(得分:0)
不,它不会影响编译速度。
使用您认为最有用的表达您想要做的事情。你不应该在这里考虑编译速度,绝对不要以编译速度的名义使你的代码变得丑陋。