当我第一次看到
__attribute__
关键字时,我得到了一个 C 程序。看起来它是一个 GNU 关键字。在 GCC 的 this page 中,他们用 (vector_size(16))
属性解释了它的用法,说:
int foo __attribute__ ((vector_size (16)));
使编译器将 foo 的模式设置为 16 个字节,分为 int 大小的单元。假设是一个32位int(4个单位4个字节的向量),foo对应的模式将是V4SI。
这是什么意思?
foo
现在是否声明为 4 元素整数数组?如果是这样,那么有什么问题:
int foo[4];
?
不, foo 没有被声明为数组。在此语句中,int 类型指定基本类型,而属性指定变量的向量大小(以字节为单位)。