使用this->,::和排序成员是否会提高编译速度?

时间:2011-11-28 18:30:27

标签: c++ compilation

我很好奇这些是否会影响编译速度:

int y;
struct foo {
  void bar() {
    x = y;
  }
  int x;
};

大概更快的版本:

int y;
struct foo {
  int x;
  void bar() {
    this->x = ::y;
  }
};

第二次编译速度更快吗?如果是这样,多少钱?

(如果重要的话我使用GCC)

2 个答案:

答案 0 :(得分:1)

听起来你真正关心的是编写可能编译速度慢的大型程序的最佳实践,而不仅仅是减少编译这么小程序所花费的几毫秒。

重要的是让您的程序尽可能清晰,以避免混淆任何人阅读它(首先,你自己)。毫秒的编译时间不会像混乱时间那样快。

一般来说,使用编译时数据结构和大量文件的元编程(模板和宏)会使编译器变慢,而不是在这里和那里检查几个范围内的名称。请记住,您需要使用更简单的限定查找来解析更多令牌。因此,这两种做法都不可能产生一致的结果,更不用说重要了。

答案 1 :(得分:0)

不,它不会影响编译速度。

使用您认为最有用的表达您想要做的事情。你不应该在这里考虑编译速度,绝对不要以编译速度的名义使你的代码变得丑陋。