搜索
bottom↓
回复: 13

keil C51 如何正确使用结构体?求指教!

[复制链接]

出5入10汤圆

发表于 2017-10-18 16:41:01 | 显示全部楼层 |阅读模式
本帖最后由 涵潇舒雅 于 2017-10-18 16:50 编辑

刚从stm8s转到新塘,就遇到难题了,各种的别扭;

  1. typedef struct
  2. {
  3.   unsigned char Dec0;
  4.   unsigned char Dec1;
  5.   unsigned char Dec2;
  6. }typedef_split3;


  7. typedef_split3 Spilt(u16 time)
  8. {
  9.   static u8 param = 0;

  10.   typedef_split3 data;
  11.   

  12.     data.Dec0 = (time%1000) / 100;
  13.     data.Dec1 =  (time%100) / 10;
  14.     data.Dec2 =  time%10;
  15.   
  16.   return data;
  17. }
复制代码


这样使用结构体,编译器如下报错;在Keil C51如何正确使用结构体&联合体?
  1. DIGITRON\digitron.c(82): error C141: syntax error near ';'
  2. DIGITRON\digitron.c(85): error C141: syntax error near 'data'
  3. DIGITRON\digitron.c(85): error C202: 'Dec0': undefined identifier
  4. DIGITRON\digitron.c(86): error C141: syntax error near 'data'
  5. DIGITRON\digitron.c(86): error C202: 'Dec1': undefined identifier
  6. DIGITRON\digitron.c(87): error C141: syntax error near 'data'
  7. DIGITRON\digitron.c(87): error C202: 'Dec2': undefined identifier
  8. DIGITRON\digitron.c(89): error C141: syntax error near 'data', expected ';'
复制代码



编辑原因:
已找到原因--------在Keil C51 中data是关键词;  

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出5入10汤圆

 楼主| 发表于 2017-10-18 16:45:28 | 显示全部楼层
自己顶一下~~~

出0入0汤圆

发表于 2017-10-18 16:47:27 | 显示全部楼层
这是结构体变量赋初值的问题,书上说的很清楚。

出5入10汤圆

 楼主| 发表于 2017-10-18 16:51:31 | 显示全部楼层
su33691 发表于 2017-10-18 16:47
这是结构体变量赋初值的问题,书上说的很清楚。

data 在keil c51 是关键词,

出0入24汤圆

发表于 2017-10-18 16:59:08 | 显示全部楼层
keil c51里面 data是关键字,不能用作变量名


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-10-18 18:45:33 | 显示全部楼层
返回函数中的局部变量, 哪学来的?

出0入93汤圆

发表于 2017-10-18 18:58:25 来自手机 | 显示全部楼层
aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?

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

出0入0汤圆

发表于 2017-10-18 22:23:52 来自手机 | 显示全部楼层
aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?

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

出0入0汤圆

发表于 2017-10-18 23:01:14 来自手机 | 显示全部楼层
结构体本身当参数和返回值 是个c语言坏习惯 会整体拷贝 低端单片机遇上结构体定义体积大估计就SB了 尽量用指针

出0入0汤圆

发表于 2017-10-19 09:20:33 | 显示全部楼层
task和data都是关键词啊,我要赶紧去看看强两天一直没调通的代码。以前一直用stm8,最近写了个stc的代码

出0入0汤圆

发表于 2017-10-20 01:37:36 来自手机 | 显示全部楼层
哈哈,最近这么多人移到新唐

出25入84汤圆

发表于 2017-10-20 09:39:53 | 显示全部楼层
感谢楼主的提醒,躲过一个坑。

出0入0汤圆

发表于 2017-10-20 09:43:42 | 显示全部楼层
刚踩了这个坑  好像还有size

出0入0汤圆

发表于 2017-10-20 09:44:31 | 显示全部楼层
aozima 发表于 2017-10-18 18:45
返回函数中的局部变量, 哪学来的?

咋个滴, 值类型的不能返回么? 又不是返回地址.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 01:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表