我有代码
#include <emmintrin.h>
#include <stdio.h>
void print128_num(__m128i var)
{
uint16_t *val = (uint16_t*) &var;
printf("Numerical: %i %i %i %i %i %i %i %i \n",
val[0], val[1], val[2], val[3], val[4], val[5],
val[6], val[7]);
}
int main(void)
{
__m128i a = _mm_set_epi32(4, 3, 2, 1);
__m128i b = _mm_set_epi32(7, 6, 5, 4);
__m128i c = _mm_add_epi32(a, b);
print128_num(c);
return 0;
}
我收到错误,其中未声明uint16_t
。我正在使用GCC和MINGW。
这是完整的错误。
||In function 'print128_num':|
|6|error: 'uint16_t' undeclared (first use in this function)|
|6|error: (Each undeclared identifier is reported only once|
|6|error: for each function it appears in.)|
|6|error: 'val' undeclared (first use in this function)|
|6|error: expected expression before ')' token|
答案 0 :(得分:48)
您需要包含stdint.h
或inttypes.h
才能获得uint16_t
。
答案 1 :(得分:-5)
使用<stdlib.h>
它将包括所有幸福的生活。