【发布时间】:2014-01-17 10:57:05
【问题描述】:
如果在函数中我需要一个固定的随机播放掩码,我应该将其设置为const 还是static const?
const __m128i SHUFFLE_MASK = _mm_setr_epi8(0, 4, 8, 12, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1);
static const __m128i SHUFFLE_MASK = _mm_setr_epi8(0, 4, 8, 12, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1);
【问题讨论】:
-
@Adriano 我不知道这是否真的有区别,但我正在使用一个函数来初始化变量,而不是常量。附带说明一下,该函数不是静态函数。
-
函数是否为静态 IMO 无关紧要(因为无论您使用的是函数还是文字值,它都不是 constexpr)。无论如何,我会使用 static const ,因为乍一看你只做一次计算(但这里的编译器可能比我们预期的要聪明得多,所以检查生成的代码可能比我的猜测更有用)。
-
我同意 Adriano - 检查生成的代码。就我而言,静态 const 变量要糟糕得多,因为 g++ 生成代码来检查是否每次都设置了变量。 YMMV。
标签: c++ sse intrinsics