在c中创建一个对齐的浮点向量

在c中创建一个对齐的浮点向量,c,memory,vector,C,Memory,Vector,我在一个使用SIMD指令的项目中工作,我不知道如何在内存中创建对齐的向量。我使用128位的数据包(每个数据包4个浮点数) 我看到很多地方人们使用结构和属性。。。欢迎任何解释。谢谢大家。假设您的编译器支持C11,您可以使用: 有些人更喜欢C++兼容的 #include <stdalign.h> alignas(16) float redVector[vectorSize]; _Alignas(16) float redVector[vectorSize]; #include &l

我在一个使用SIMD指令的项目中工作,我不知道如何在内存中创建对齐的向量。我使用128位的数据包(每个数据包4个浮点数)


我看到很多地方人们使用结构和属性。。。欢迎任何解释。谢谢大家。

假设您的编译器支持C11,您可以使用:

有些人更喜欢C++兼容的

#include <stdalign.h>

alignas(16) float redVector[vectorSize];
_Alignas(16) float redVector[vectorSize];
#include <stdalign.h>

alignas(16) float redVector[vectorSize];
float redVector[vectorSize] __attribute__((__aligned__(16)));