错误:“uint16_t”未声明?

Posted

技术标签:

【中文标题】错误:“uint16_t”未声明?【英文标题】:error: 'uint16_t' undeclared? 【发布时间】:2013-07-02 21:59:07 【问题描述】:

我有密码

#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|

【问题讨论】:

【参考方案1】:

您需要包含stdint.hinttypes.h 才能获得uint16_t

【讨论】:

我不怎么用 C,所以对我来说它是新的。 必须是使用 MSVC 而无法访问标头的人(因为它们是在 C99 中添加的,而 MSVC 仅支持 C89),或者其他什么。 怪人。这个问题都被标记为 GCC 并在正文中显示“我正在使用 GCC”。 是的,我知道。我也不知道为什么要投反对票。我尝试使用谷歌找到这个问题的答案,我得到的只是一堆与 Linux 相关的线程,告诉人们使用 sudo 来安装核心 linux 实用程序。也有人想关闭线程。它周围唯一一个喜欢它。 我遇到了同样的问题。另一位开发人员正在使用 Visual Studio,而我正在使用 mingw。无法编译他的最新推送。这就是原因。添加#include stdint.h 修复它。

以上是关于错误:“uint16_t”未声明?的主要内容,如果未能解决你的问题,请参考以下文章

PHP - unpack() uint8_t 和 uint16_t

SIMD -> uint16_t 数组到浮点数组在浮点上工作,然后返回到 uint16_t

uint8_t / uint16_t / uint32_t /uint64_t数据类型详解

uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结

uint8_t / uint16_t / uint32_t /uint64_t 这些数据类型是什么?

uint8_t / uint16_t / uint32_t /uint64_t 这些数据类型是什么?