我在某些代码中处理 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/