標(biāo)題: keil編譯錯誤error C247: non-address/-constant initializer這個問題怎么解決? [打印本頁]

作者: MC!    時間: 2019-4-24 22:19
標(biāo)題: keil編譯錯誤error C247: non-address/-constant initializer這個問題怎么解決?
#include<reg51.h>   
#include<intrins.h>
#define  GPIO_LED P0
#define  GPIO_KEY P1
sbitK1=P1^0;
sbitK2=P1^1;
sbitK3=P1^2;
sbitK4=P1^3;
sbitK5=P1^4;
char  KeyNum;
unsigned uchar state;
unsigned uchar change_state;
voidDelay10ms(unsigned int c);
~

然后顯示有問題

compiling lsd6.c...
LSD6.C(5): error C247: non-address/-constant initializer
LSD6.C(6): error C247: non-address/-constant initializer
LSD6.C(7): error C247: non-address/-constant initializer
LSD6.C(8): error C247: non-address/-constant initializer
LSD6.C(9): error C247: non-address/-constant initializer
LSD6.C(11): error C129: missing ';' before 'state'
作者: HC6800-ES-V2.0    時間: 2019-4-25 08:15
抄的程序吧
前五個錯誤一樣,就是少了一個空格而已:sbit  k1=P1^0;
第六個錯誤還是規(guī)則問題,雖然說的是分號丟失,應(yīng)該unsigned uchar;,但考慮到這語句的用途,是定義一個變量,所以應(yīng)該這樣寫:unsigned char state;,多寫了一個u
作者: 周超然    時間: 2019-4-25 08:19
你的voidDelay10ms(unsigned int c);
void 后面加個空格
作者: MC!    時間: 2019-4-25 12:16
HC6800-ES-V2.0 發(fā)表于 2019-4-25 08:15
抄的程序吧
前五個錯誤一樣,就是少了一個空格而已:sbit  k1=P1^0;
第六個錯誤還是規(guī)則問題,雖然說的是 ...

謝謝

作者: MC!    時間: 2019-4-25 12:17
周超然 發(fā)表于 2019-4-25 08:19
你的voidDelay10ms(unsigned int c);
void 后面加個空格

謝謝!
作者: 奮斗的小白熊    時間: 2019-4-25 15:14
每個sbit  后面都要加空格在寫 k1 k2 k3 k4   還有就是unsigned char 就是uchar    這個unsigned uchar就是不對了  應(yīng)該是unsigned char

作者: MC!    時間: 2019-4-25 18:51
奮斗的小白熊 發(fā)表于 2019-4-25 15:14
每個sbit  后面都要加空格在寫 k1 k2 k3 k4   還有就是unsigned char 就是uchar    這個unsigned uchar就是 ...

xiexie
作者: 懶散專業(yè)戶    時間: 2019-7-4 16:24
sbitK1=P1^0; sbitK2=P1^1; sbitK3=P1^2; sbitK4=P1^3; sbitK5=P1^4;這個都少一個空格,unsigned uchar state; unsigned uchar change_state;這個應(yīng)該是unsigned char state; unsigned char change_state;
作者: cphnkj188    時間: 2019-7-4 18:27
如果是復(fù)制的教材中的程序,請仔細(xì)對照一下,初學(xué)者(包括我)最容易犯一些小錯誤,比如空格 分號等等,都是這樣過來的
作者: wcs1668    時間: 2019-7-5 16:50
新手經(jīng)常出現(xiàn)的問題。
作者: 歲城璃心    時間: 2019-7-11 10:04
sbitK1=P1^0;
sbitK2=P1^1;
sbitK3=P1^2;
sbitK4=P1^3;
sbitK5=P1^4;
少空格
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
unsigned uchar state;
unsigned uchar change_state;
多了u,本來是這么用的:#define uchar unsigned char(uchar代替uchar unsigned,你重復(fù)了 )
voidDelay10ms(unsigned int c);
少空格void Delay10ms(unsigned int c);
作者: 0711zhao    時間: 2020-11-10 21:00
key_table code table[30]=
{
        {0,3,1,4,(*fun1)},//第一層,顯示【清華大學(xué)】、北京大學(xué)、重慶三峽學(xué)院、返回
         {1,0,2,8,(*fun2)},//第一層,顯示清華大學(xué)、【北京大學(xué)】、重慶三峽學(xué)院、返回

User\1602test.c(23): error C247: non-address/-constant initializer
我也出現(xiàn)這個錯誤不知道什么原因
作者: 玖123    時間: 2020-11-12 00:47

#include<reg51.h>   
#include<intrins.h>
#define  GPIO_LED P0
#define  GPIO_KEY P1
sbitK1=P1^0;
sbitK2=P1^1;
sbitK3=P1^2;
sbitK4=P1^3;
sbitK5=P1^4;
char  KeyNum;
uchar state;
uchar change_state;
void Delay10ms(unsigned int c);
~

這樣寫應(yīng)該就可以了,non-address明顯就是打錯了
作者: 科技小兵    時間: 2022-5-21 20:29
我編譯的時候也遇到同樣的問題哎,有大佬給出解釋嗎
作者: ldwyyds    時間: 2022-5-30 13:38
少空格void Delay10ms(unsigned int c);
作者: aide51    時間: 2022-5-31 12:41
這個可以學(xué)習(xí)不少好東西,綜合以上
作者: wenqiangkuaile    時間: 2022-6-1 11:21
不一定速度快了就好,選擇比較合適的,也就是在保證允許精度的情況下,盡量調(diào)快速度
作者: yaoyao2022    時間: 2022-6-2 22:50
sbitK1=P1^0; sbitK2=P1^1; sbitK3=P1^2; sbitK4=P1^3; sbitK5=P1^4; 這些少 sbit 和變量名之間需要有一個空格
作者: 君工創(chuàng)    時間: 2022-6-3 11:36
少空格的定義,證明不是復(fù)制上去的,是打出來的。遇到過的問題,記得更牢。
作者: 因素abc123    時間: 2023-3-28 18:43
沒加空格
作者: aide51    時間: 2023-3-29 16:30
這說明編寫程序一定要嚴(yán)謹(jǐn)
作者: zilihangjian    時間: 2023-4-3 10:03
每個sbit  后面都要加空格  unsigned char 就是uchar   unsigned uchar是不對的
作者: changhz    時間: 2023-4-3 13:25
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;

uchar state;
uchar change_state;
void Delay10ms(uint c);
作者: eiffel2114    時間: 2025-4-17 16:25
沒空格




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1