加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何有效克服“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;

为此,您需要一个包含在每个翻译单元中的头文件.通常,每个项目都有一个专门用于解决此类问题的项目.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读