如何有效克服“u_int8_t vs uint8_t”问题
发布时间:2020-12-14 02:15:08 所属栏目:Windows 来源:网络整理
导读:我正在尝试在Solaris中构建一个包(libnet),我发现在Solaris中没有u_xxx_t但在sys / types.h中定义了uxxx_t 我有两个问题: 1 – 不应该让autotools为我照顾这个吗? 2 – 我想我不是第一个面对这个问题的人(尽管google没什么帮助)是否有标准/有效/正确/快速
我正在尝试在Solaris中构建一个包(libnet),我发现在Solaris中没有u_xxx_t但在sys / types.h中定义了uxxx_t
我有两个问题: 1 – 不应该让autotools为我照顾这个吗? 2 – 我想我不是第一个面对这个问题的人(尽管google没什么帮助)是否有标准/有效/正确/快速的方法来克服这个问题? 解决方法
克服tis最合理的方法是坚持使用类型名称的标准拼写(即使该标准是您正在使用的实现的“未来”标准). C99为这种类型名称引入了标准命名法,在C99中它是uint8_t.因此,即使您使用的是C89 / 90编译器,我也建议您在代码中使用uint8_t.如果在某个平台上它不可用或拼写不同,您只需引入一个特定于平台的typedef名称来“转换”拼写
typedef u_int8_t uint8_t; 为此,您需要一个包含在每个翻译单元中的头文件.通常,每个项目都有一个专门用于解决此类问题的项目. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读