我正在尝试初始化下面的结构,称为arduino_lcd_t
。因为我使用的外设可以将数据一次写入四位,或者一次写入8位,所以我决定使用一个宏来定义自己。但是,我无法编译此代码,可能是因为#ifdef
的宏。我收到了警告
declaration does not declare anything
我有什么不对的,或者这不能做到吗?相关代码如下。
#define FOUR_BIT_MODE 1
#ifdef FOUR_BIT_MODE
#define DATA_LEN 4;
#else
#define DATA_LEN 8
#endif
typedef struct
{
long lighting_pin;
long register_select_pin;
long read_write_pin;
long enable_pin;
**long data_pins[DATA_LEN];**
} arduino_lcd_t;
答案 0 :(得分:1)
long data_pins[DATA_LEN];
当宏将被扩展时,它将变为
long data_pins[4;];
4;
不能成为数组的指标。移除宏末尾的;