c语言中数学的大小、整数和整数

c语言中数学的大小、整数和整数,c,math,size-t,C,Math,Size T,在某些代码中处理size\u t值时,我遇到了一个小问题 首先,我想使用size\u t,因为它[保证]在大多数平台上都是相同的大小,这样从32位到64位就不会引起任何问题 然后我否定了size\u t值,得到了一个非常大的数字,回头看,我发现size\u t是无符号的。还有intptr____________________________________________ 我的最终目标是用c语言实现一组简单的定点数学函数 我的问题是,我可以在所有计算中使用像int一样的uintpttr\t吗?

在某些代码中处理size\u t值时,我遇到了一个小问题

首先,我想使用size\u t,因为它[保证]在大多数平台上都是相同的大小,这样从32位到64位就不会引起任何问题

然后我否定了size\u t值,得到了一个非常大的数字,回头看,我发现size\u t是无符号的。还有intptr____________________________________________

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


我的问题是,我可以在所有计算中使用像int一样的uintpttr\t吗?如果你想在所有的平台上拥有完全相同的位数,那么简单地使用例如在

中定义的It32?t,你可以考虑PrDeFifft,它是指针的不同类型产生的。在所有通用平台上,这应该是与size\t相对应的签名类型。

您在linux/gcc/32bit==32bit、linux/gcc/64bit==64bit上尝试过size\t吗?库的用例是什么?关于值的范围,您希望提供什么保证?用例是单位四元数和向量3以及四元数到4x4矩阵。这部分代码没有更多内容。因为四元数和弧度的分数部分更重,所以我希望分数部分有更多的位。此外,弧度的度数可以适应高达2pi或其模数的大小。唯一可以保证能够存储的负值ssize\t为-1。在做了更多的研究之后,ptrdiff\t似乎是有符号的,应该能够完成我所需要的。我们希望这个选择不会在将来变成bug。这在32位系统和64位系统上肯定会有不同的大小。在Linux上:cat ptrdiff_t.c;cc ptrdiff\u t.c-o ptrdiff\u t/ptrdiff_t;cc-m32 ptrdiff_t.c-o ptrdiff_t/ptrdiff\u t:include include int main{printf%zu\n,sizeofptrdiff\u t;返回0;}8 4