高科技C编译器:#define:“取这个对象的地址是非法的”

时间:2014-01-26 10:05:13

标签: c compiler-construction compiler-errors pic hi-tech-c

我正在尝试使用Hi-Tech C编译器为PIC16F77微控制器编译代码。

下面的代码在下面的代码段的最后一行中给出了错误。错误是:

Error   [195] C:\...\.c; 8.1 expression syntax
Error   [201] C:\...\.c; 8.8 taking the address of this object is illegal

我已将问题缩小到以下几点:

#define TEST1       0x01;
#define TEST2       0x80;
#define TEST3       (TEST1 | TEST2)

// in main():
ADCON0 = TEST1; // works
ADCON0 = TEST2; // works
ADCON0 = TEST3; // compile error

ADCON0是8位寄存器,具有控制ADC的标志。)

知道代码有什么问题吗?

由于

1 个答案:

答案 0 :(得分:1)

从您的TEST1TEST2定义中删除分号,因为TEST3扩展为(0x01; | 0x80;)