首页 > 解决方案 > #define xxxxxx BIT(0) 链接器错误

问题描述

我正在使用 STM32F4 的 gcc ARM 编译器编译别人用 C 编写的代码

#define ESC_CSR_CMD_BUSY         BIT(31)
#define ESC_CSR_CMD_READ         (BIT(31) | BIT(30))
#define ESC_CSR_CMD_WRITE        BIT(31)

我收到一个错误,因为它似乎不知道 BIT(n) 是什么。

警告:函数“BIT”的隐式声明;你是说'__RBIT'吗?

某处是否有定义 BIT 是什么的 stdint 文件...?或另一种写法。

标签: cgcc

解决方案


虽然代码应该附带 BIT 的定义,但我猜这是一个合适的定义:

#define BIT(n) (1UL << (n))

推荐阅读