0

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

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

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

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

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

提前致谢

4

1 回答 1

1

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


至于char,uint8_t或之间的选择int8_t,默认应该char用于字符数据(即字符串和字符)和uint8_torint8_t用于小数字。

于 2012-12-13T18:03:37.523 回答