是否可以使常量数组的内容在多个其他源文件中可见,以便编译器可以优化对数组的访问。
我有一个数组
const int myTable[10];
,在多个源文件中,我希望该表的内容对其他源文件可见,以便优化访问。例如下面的代码:
if (myTable[1] == 1)
{
foo();
}
else if (myTable[2] == 5)
{
bar();
}
else
{
baz();
}
如果源文件知道 myTable
的内容,可以完全优化分支。
我知道几个解决方案,但没有一个令人满意:
myTable
,然后将其包含在源文件中 - 我只想要这个表的单个定义,因为它很大在给定的限制下,一种选择是将需要此类优化的函数收集在与表相同的编译单元中。例如:
const int myTable[10] = ...;
void doFooBar(void)
{
if (myTable[1] == 1)
{
foo();
}
else if (myTable[2] == 5)
{
bar();
}
else
{
baz();
}
}