c - 在 C 中为特定数组位置创建 MACRO
问题描述
下面的代码(类似版本)有一些问题,我在 C 中为数组的特定位置创建了一个宏。但是,我无法访问宏。
unsigned int rx_data[2][2];
#define rx_1_data (rx_data[0]);
int main()
{
if(rx_1_data > 0)
{
rx_1_data = 0;
}
else
{
rx_1_data = 99;
}
}
编译器通知我以下错误消息:错误:预期的 ')' before ';' 令牌
有人知道访问 MACRO 中声明的数组的正确方法吗?
解决方案
C 中的宏使用非常简单的规则进行扩展,因此生成的代码大致如下:
if((rx_data[0]); > 0)
这显然是一个语法错误。使您的宏更小以避免语法问题,例如专门删除不正确的;
. #define
语句不需要以这种方式终止,它们的处理方式与常规代码不同。
像这样的宏只会让您的代码阅读起来非常令人沮丧。除非必须,否则不要这样做。rx_data[0]
甚至没有更多的打字,你在这里什么都没有保存。
推荐阅读
- python - GetForegroundWindow 不使用 Python win32gui
- flutter - Flutter Navigator.Push 不连贯并显示轻微的残像
- glsl - 在 Raymarching 中,当您可以只拥有与对象关联的材质时,为什么会有对象 ID 并通过该 ID 确定对象的材质?
- c - 在 C 中格式化
- android-studio - 有没有办法让 Android Studio 中的活动透明?
- java - Graphics/Graphics2D 是如何实现的?
- sql - 如何修复'列在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中
- angular - 具有异步功能的 Mat-Spinner 没有像我期望的那样在 Angular 12 中使用 rxjs 功能完成
- python - how to make a script with the following codes python
- ansible - 从 iDRAC IP 连接到操作系统