涵潇舒雅 发表于 2017-10-18 16:41:01

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是关键词;

涵潇舒雅 发表于 2017-10-18 16:45:28

自己顶一下~~~

su33691 发表于 2017-10-18 16:47:27

这是结构体变量赋初值的问题,书上说的很清楚。

涵潇舒雅 发表于 2017-10-18 16:51:31

su33691 发表于 2017-10-18 16:47
这是结构体变量赋初值的问题,书上说的很清楚。

data 在keil c51 是关键词,{:cry:}

20061002838 发表于 2017-10-18 16:59:08

keil c51里面 data是关键字,不能用作变量名


aozima 发表于 2017-10-18 18:45:33

返回函数中的局部变量, 哪学来的?

takashiki 发表于 2017-10-18 18:58:25

aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?

您这句话算是智者千虑必有一失么,哈哈

arm 发表于 2017-10-18 22:23:52

aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?

返回函数中的局部常量,有啥问题?

huangqi412 发表于 2017-10-18 23:01:14

结构体本身当参数和返回值 是个c语言坏习惯 会整体拷贝 低端单片机遇上结构体定义体积大估计就SB了 尽量用指针

yunhuisong 发表于 2017-10-19 09:20:33

task和data都是关键词啊,我要赶紧去看看强两天一直没调通的代码。以前一直用stm8,最近写了个stc的代码

Ray______ 发表于 2017-10-20 01:37:36

哈哈,最近这么多人移到新唐

chun2495 发表于 2017-10-20 09:39:53

感谢楼主的提醒,躲过一个坑。

浮华一生 发表于 2017-10-20 09:43:42

刚踩了这个坑好像还有size

浮华一生 发表于 2017-10-20 09:44:31

aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?

咋个滴, 值类型的不能返回么? 又不是返回地址.
页: [1]
查看完整版本: keil C51 如何正确使用结构体?求指教!