如何端口uint32_t的用C到Windows 7(32位)
问题描述:
最近,我所遇到的这包含的数据类型,如如何端口uint32_t的用C到Windows 7(32位)
uint32_t, uint32, uint64 etc.
我可以在Windows 7(32位),而不使运行程序的程序任何变化? 我使用MingW的Code :: Blocks 10.05。
如果需要更改,哪些数据类型可以替换它们?
另外我想知道哪些标准的C定义uint32_t,uint32等? 它是所谓的gcc C?
答
这些是从<stdint.h>
,C99引入C标准头,我想。
如果您没有C99或兼容的头已经在你的系统,你真的应该有和真的应进行调查,则需要重新创建自己的定义。验证unsigned int
确实你的编译器正好 32位之后
typedef unsigned int uint32_t;
等,当然:
要做到这一点,你需要引入的typedef
秒的一群。
但是这不应该是必要的,我想即使Visual Studio有足够的C99支持现在提供这个头。
stdint.h确实是在C99中引入的,并且自此成为C标准的一部分。因此,根据OP请求来替换这些int类型是没有意义的 - 相反,各种非标准类型应该用stdint.h中的替换。 – Lundin 2013-03-26 15:29:22
需要的类型定义可在https://code.google.com/p/msinttypes/ – Peter 2013-03-26 15:33:46
找到。由于提问者正在使用mingw,对于标准类型来说'#include'不是更好,然后typedef非标准的'uint32'和'uint64',而不是typedef标准的'uint32_t'?如果稍后更改代码意味着无论如何都会包含''并且您的typedef冲突,也意味着您不必担心'unsigned int'的大小是否合适。 –
2013-03-26 15:46:59