【发布时间】:2015-08-30 15:29:12
【问题描述】:
从使用 FreeRTOS 实时内核 - 标准版,p143,我注意到:
从不使用int类型——只有long和short
我想知道为什么,但是在它的官网找不到答案,google了也没有结果。
08/31 更新:
也许我的问题不是很清楚,简而言之,我只是想知道为什么 FreeRTOS 将 BaseType_t 定义为 long 而不是 int(并且其他 FreeRTOS 定义的类型也从不使用 int)。在其Coding-Standard-and-Style-Guide 页面上,它说:
BaseType_t
这被定义为架构中最有效、最自然的类型。例如,在 32 位架构上,BaseType_t 将被定义为 32 位类型。在 16 位架构上,BaseType_t 将被定义为 16 位类型。如果 BaseType_t 定义为 char,则必须特别注意确保函数返回值使用带符号的字符,该值可能为负值以指示错误。
从上面的描述,我认为int比long更合适,因为int总是符合架构的字长。
【问题讨论】: