c - #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 文件...?或另一种写法。
解决方案
虽然代码应该附带 BIT 的定义,但我猜这是一个合适的定义:
#define BIT(n) (1UL << (n))
推荐阅读
- java - 如何修复递归回溯迷宫中的越界异常?
- javascript - 编写匿名函数会出错
- python-3.x - 如何将其从 str 格式化为类似字节的对象?
- sql - 如何将此 MYSQL SQL 转换为 HIVE SQL?
- python - 获得 100% 的训练准确度,但 60% 的测试准确度
- c - 为什么我需要用 * 定义对 C 中指针的引用?
- python - ImportError:无法在 Google Cloud Language API 中导入名称语言
- javascript - 我是否正确更新了 React 状态?
- laravel - 从购物车中不相关的表中获取两列值相乘的总和
- c++ - Copy CTOR vs assignment operator 初始化对象(性能)