1. 解释错误C247的含义 错误C247:“non-address/-constant initializer”通常出现在C或C++编程中,表示使用了非常量或非地址类型的初始化器对全局变量、静态变量或常量进行了初始化。在C和C++中,全局变量、静态变量以及用const修饰的变量(常量)通常需要在编译时就能确定其值,因此它们只能用常量表达式来初始化。 2. ...
定义的变量没有用明确的常量进行初始化。不要把需要计算的宏定义等未决的“常量”赋值给新定义的变量,否则报错。
你的如下 C 语言代码就有问题:你虽然在 delay 子函数中声明了形参 ms,但是在你的整个源程序中,只有两处涉及到 ms 变量:(1)、unsigned char ms;(2)、while( ms -- )。void delay(unsigned char ms){ unsigned char i;while(ms--)...} 由于你的程序是涉及到对硬件编程的,至于说你...
不能通过引用数组元素的方式给变量赋初值。WORD J=TIME[I] 这个赋值语句可以加在程序里,而不是在变量声明时引用数组元素。
不能通过引用变量的方式给变量赋初值。unsigned char x;……x=(char) rand()%5;这样就可以了
P3^4 是一个端口,只有0或者1,意味着大小只有1位,需要用sbit定义,而不是u8 (unsigned char)
这就是绝对地址的指针了。所以,不能再用rval = DBYTE [0x0002];这种写法定义绝对地址的。这一行是不能用在主程序前面的,不能作为声明变量的,而这是要作为赋值语句的。正确方法是,要先声明变量rval:unsigned char rval;在主程序中再给rval赋值:rval = DBYTE [0x0002];//这是赋值了,不是...
unsigned char a[7]={D1,D2,D3,D4,D5,D6,D7,D8}; 有问题 不能这么写 想实现流水灯 这么写 while(1){ a=0x01; //赋初值00000001 for(i=0;i<7;i++){ P0=a;delay(500);a=a<<1; //左移 } for(i=0;i<7;i++){ P0=a;delay(500);a=a>>1; //右移 }...
define UINT unsigned int 你对宏用法不了解
Error : non-address/-constant initializer sanat sharmaover 15 years ago Why below line of code is not compiling successfully?const unsigned char *a[]={ "Hello", "Hi" }; const unsigned char *b[]={ a[0], a[1] };