是否在任何 stdlib 标头中定义了像 uint32、int32、uint64、int64 这样的类型?

发布于 2024-11-07 06:38:28 字数 115 浏览 0 评论 0原文

我经常看到使用 uint32、uint64 等类型的源代码,我想知道它们是否应该由程序员在应用程序代码中定义,或者是否在标准 lib 标头中定义。

在我的应用程序源代码中使用这些类型的最佳方法是什么?

I often see source code using types like uint32, uint64 and I wonder if they should be defined by the programmer in the application code or if they are defined in a standard lib header.

What's the best way to have these types on my application source code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

緦唸λ蓇 2024-11-14 06:38:28

C99 stdint.h 定义了这些:

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

并且,如果架构支持它们:

  • int64_t
  • uint64_t

中还有各种其他整数类型定义stdint.h 也是如此。

如果您在没有 C99 环境的情况下陷入困境,那么您可能应该提供自己的 typedef 并无论如何使用 C99 的 typedef。

uint32uint64(即没有_t 后缀)可能是特定于应用程序的。

The C99 stdint.h defines these:

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

And, if the architecture supports them:

  • int64_t
  • uint64_t

There are various other integer typedefs in stdint.h as well.

If you're stuck without a C99 environment then you should probably supply your own typedefs and use the C99 ones anyway.

The uint32 and uint64 (i.e. without the _t suffix) are probably application specific.

软糖 2024-11-14 06:38:28

这些整数类型都在 stdint.h 中定义

Those integer types are all defined in stdint.h

指尖微凉心微凉 2024-11-14 06:38:28

如果您使用的是 C99,只需包含 stdint.h。顺便说一句,64 位类型是存在的,前提是处理器支持它们。

If you are using C99 just include stdint.h. BTW, the 64bit types are there iff the processor supports them.

静若繁花 2024-11-14 06:38:28

提问者实际上询问的是 int16 (等)而不是(丑陋的)int16_t (等)。

没有标准头文件 - Linux 的 /usr/include/ 文件夹中也没有任何定义不带“_t”的头文件。

The questioner actually asked about int16 (etc) rather than (ugly) int16_t (etc).

There are no standard headers - nor any in Linux's /usr/include/ folder that define them without the "_t".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文