c++ - C 中的变量声明 typedefs 约定

标签 c++ c coding-style

自从我开始使用 C 编程以来,我知道/看到每个人在使用 typedef 声明变量时都使用以下约定,如下所示:

   int32_t *data_value;
   const int16_t *Order_Of_Mag;
   uint16_t min_change;
   uint8_t  eeprom_save_flag;

我理解部分原因是不同架构之间的可移植性。有谁知道什么时候和/或什么标准规定了这种声明方法?

此外,考虑到 char 既不是 uint8_t 也不是 int8_t(参见下面的示例函数),处理需要使用 char 的标准库 (stdio.h) 函数的推荐方法是什么

sscanf(const char *format)
int atio(const char *s)

提前致谢

最佳答案

据我所知,唯一要求您使用此类 typedef 的标准是项目/公司特定的编码约定。然后,这些编码约定还准确指定要使用的 typedef(甚至宏),因此它可能是 UINT32 而不是您必须使用的 uint32_t


关于charuint8_tint8_t的选择,默认应该是使用char字符数据(即字符串和字符)和用于小数字的 uint8_tint8_t

关于c++ - C 中的变量声明 typedefs 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865451/

相关文章:

c++ - VERIFY(...) 是 C++ 编码的好习惯吗?

ruby - 使用 CamelCase 命名 Ruby 常量是一种不好的风格吗?

c++ - 将 std::vector<char> 截断为长度 N 以释放内存的有效方法

c++ - 如何用stride遍历一个n维数组

model-view-controller - MVC : Is it considered bad form to give a DTO a reference to the data access layer?

c++ - 为什么我会在 'ideone' 中收到运行时错误,而相同的代码却可以在 Turbo C 等其他编译器上运行?

c - 如何从另一个字符串中删除最后一次出现的字符串?

c++ - 如何在不可变的 C++ 对象中实现延迟初始化和缓存?

c++ - 出现错误 C2679 : binary '+=' : no operator found which takes a right-hand operand of type 'int' 的问题

c - 为什么我不断收到分段转储?