我为i2c创建了一个头文件,来自Peter Fleury。我在eclipse中重写并获得错误警告“此行中有多个标记 - 语法错误 - 预期标识符或'(在'无符号'之前'在列表程序的第二行下面
>#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
>
>unsigned char i2c_read (unsigned char ack);
任何人都可以帮助我吗?
答案 0 :(得分:1)
你想要达到什么目的? 如果您预处理#define宏,您将获得:
unsigned char (unsigned char ack) ? i2c_readAck() : i2c_readNak();;
这不合法C.我不熟悉i2c,我不知道你想做什么。如果您尝试声明一个新变量并使用值初始化它(并调用正确的方法),您应该:
#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak()
unsigned char new_var = i2c_read (ack);
请注意,我假设ack是在其他地方定义的。如果您正在尝试实现其他目标,请在您的问题中指明。 另请注意,我从'#define'中删除了一个分号。这是一个常见的错误,通常只会产生警告或不被注意。
哦,如果您正在尝试声明一个函数,那么它的名称应该与宏不同。
答案 1 :(得分:1)
您已定义一个宏并声明了一个具有相同名称的函数 也许您应该更改宏名称或函数名称。