错误:'uint16_t'未声明?

pan*_*ami 23 c gcc undeclared-identifier uint16

我有代码

#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;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,其中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|
Run Code Online (Sandbox Code Playgroud)

Car*_*rum 57

你需要包括stdint.hinttypes.h获得uint16_t.

  • 我遇到了同样的问题。另一位开发人员正在使用 Visual Studio,而我正在使用 mingw。无法编译他的最新推送。就是这个原因。添加“#include stdint.h”修复了它。 (3认同)
  • 怪人。该问题都被标记为 GCC,并在正文中显示“我正在使用 GCC”。 (2认同)