我想让一些静态常量在全局范围内可见。我非常熟悉如何在C++中做到这一点。问题是,这些常量需要与一些奇异的边界对齐。我必须在外部声明中指定对齐吗?我使用的是GCC4.5
在*.cpp文件中
static const constant_t constant __attribute__((aligned(64))) = {blah,blah,blah};在*.h文件中
//Which one is correct?
extern const constant_t constant;
extern const constant_t constant __attribute__((aligned(64)));发布于 2010-04-25 20:52:42
首先,看起来您试图在C文件中声明它是静态的,这是C中表示内部(文件)链接的旧方法。这与您使其全球化的目标不一致。
鉴于static已被删除,您应该只需要C文件中的属性: extern声明有效地表示“我想使用这个名称,当您最终找到它的地址时,请将其替换为here”。换句话说,一旦在C文件中的定义点分配了地址,您的extern就会象征性地指向相同的地址。
https://stackoverflow.com/questions/2708127
复制相似问题