【发布时间】:2015-01-07 07:23:49
【问题描述】:
我有一个struct,类似于:
typedef struct _pair_t{
uint16_t keylen; // 2
uint32_t vallen; // 4
} __attribute__((__packed__)) pair_t;
我将使用mmap 从文件中读取数据,因此我想将数字存储为大端序。
我需要做htobe16 / betoh16 还是有一些__attribute__ 可以为我做这件事?
【问题讨论】:
-
旁注:您不应定义以
_t结尾的类型,以避免与内置编译器类型发生冲突。 -
@Sidenote - 我使用 hm_pair_t(我在所有 typedef 中都使用 _t 的任何地方都添加了 hm_)。我应该在我的代码中解决这个问题吗?这种命名有什么好的方法吗?
-
以
_开头的名称也被保留。 -
This answer 对此进行了一些讨论。我在 C 中使用了
CamelCaseWithSuffix_T约定,但不知道它是否最好。
标签: c struct int endianness uint32-t