keil C51 如何正确使用结构体?求指教!
本帖最后由 涵潇舒雅 于 2017-10-18 16:50 编辑刚从stm8s转到新塘,就遇到难题了,各种的别扭;
typedef struct
{
unsigned char Dec0;
unsigned char Dec1;
unsigned char Dec2;
}typedef_split3;
typedef_split3 Spilt(u16 time)
{
static u8 param = 0;
typedef_split3 data;
data.Dec0 = (time%1000) / 100;
data.Dec1 =(time%100) / 10;
data.Dec2 =time%10;
return data;
}
这样使用结构体,编译器如下报错;在Keil C51如何正确使用结构体&联合体?
DIGITRON\digitron.c(82): error C141: syntax error near ';'
DIGITRON\digitron.c(85): error C141: syntax error near 'data'
DIGITRON\digitron.c(85): error C202: 'Dec0': undefined identifier
DIGITRON\digitron.c(86): error C141: syntax error near 'data'
DIGITRON\digitron.c(86): error C202: 'Dec1': undefined identifier
DIGITRON\digitron.c(87): error C141: syntax error near 'data'
DIGITRON\digitron.c(87): error C202: 'Dec2': undefined identifier
DIGITRON\digitron.c(89): error C141: syntax error near 'data', expected ';'
编辑原因:
已找到原因--------在Keil C51 中data是关键词;
自己顶一下~~~ 这是结构体变量赋初值的问题,书上说的很清楚。 su33691 发表于 2017-10-18 16:47
这是结构体变量赋初值的问题,书上说的很清楚。
data 在keil c51 是关键词,{:cry:} keil c51里面 data是关键字,不能用作变量名
返回函数中的局部变量, 哪学来的? aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?
您这句话算是智者千虑必有一失么,哈哈 aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?
返回函数中的局部常量,有啥问题? 结构体本身当参数和返回值 是个c语言坏习惯 会整体拷贝 低端单片机遇上结构体定义体积大估计就SB了 尽量用指针 task和data都是关键词啊,我要赶紧去看看强两天一直没调通的代码。以前一直用stm8,最近写了个stc的代码 哈哈,最近这么多人移到新唐 感谢楼主的提醒,躲过一个坑。 刚踩了这个坑好像还有size aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?
咋个滴, 值类型的不能返回么? 又不是返回地址.
页:
[1]