我正在试图了解可能导致此问题的原因,因为一切似乎都很好,但结果似乎指出了某种错误的行为。
我有一个自定义结构定义为:
struct MyStruct {
const u16 index;
...
MyStruct(u16 index) : index(index), ... { }
}
static const MyStruct array[] = {
MyStruct(__COUNTER__,...),
MyStruct(__COUNTER__,...),
MyStruct(__COUNTER__,...)
...
}
现在,如果我使用XCode检查预处理文件,一切都很好,我会得到应有的增量索引。
在运行时,相反,发生的是索引16变为23并且连续索引降低1,例如:
real index stored index
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 23
17 16
18 17
19 18
20 19
这很奇怪,特别是因为16似乎是一个特定的界限。编译器是Apple Clang 4.2(基于LLVM 3.2),在XCode 4.6上。