c - c 中数学的 size_t、intptr_t 和 uintptr_t

标签 c math size-t

我在某些代码中处理 size_t 值时遇到了一个小问题。

首先,我想使用 size_t,因为它 [保证] 在大多数平台上具有相同的大小,这样从 32 位到 64 位应该不会造成任何问题。

然后我对 size_t 值取反并得到了一个非常大的数字,回过头来我意识到 size_t 是无符号的。 intptr_t 也是有符号的,但应该用于指针,还有 uintptr_t 是无符号的,也用于指针。

我的最终目标是用 c 语言实现一组简单的定点数学函数。

我的问题是我可以在所有计算中像使用 int 一样使用 uintptr_t 吗?这会导致任何问题吗?

最佳答案

如果您想在所有平台上拥有完全相同的位数,只需使用例如 stdint.h 中定义的 int32_t。

关于c - c 中数学的 size_t、intptr_t 和 uintptr_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533489/

相关文章:

c - 如何直接在 Linux 系统中处理来自字符设备/游戏 handle 的输入?

c - 区分用户输入是 int 还是 char/string

java - 数学计算不正确

c++ - 计算 gluLookAt、glOrtho 和 glFrustum

c++ - 从 'size_t' 到 'rapidjson::SizeType' 的转换

c - 使用 dup2 重定向 stdin 和 stdout

c - 有人知道 atolf c 函数吗?

java - 不正确的数学/舍入?

c - 如果 size_t 是 64 位,那么 char 数组的最大大小是多少?

c++ - size_type 可以大于 std::size_t 吗?