找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言程序,为啥带上结构体就编译不成功呢?

查看数: 5382 | 评论数: 17 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-1-16 16:34

正文摘要:

求大师们指教,为啥带上结构体就编译不成功呢

回复

ID:130230 发表于 2021-2-5 09:15
内部ram不够了 用xdata修饰然后在keil里面设置large类型即可
ID:373388 发表于 2021-2-5 00:38
code key_table .....   用code关键字或则const关键字,把数据常量定义到flash区,试试

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:25310 发表于 2021-2-4 16:27
使用xdata
ID:879809 发表于 2021-1-23 17:22
dhmawen 发表于 2021-1-23 11:53
发现个规律编译时data超过128就不成功,求教从哪里可以设置吗

你既然选用了51这么古老的东西,就应该忍受51的各种不合理结构,在任何地方都不可以设置,除非你换单片机,不用51。

51内部RAM是256bytes,但是高128bytes直接寻址访问的是SFR,只有低128字节可用,R0~R7通用寄存器会占用8个字节,实际可用只有120bytes。想用到高128bytes必须加idata修饰,将会用R0、R1间接寻址,速度会变慢,但是你要忍,选择错误的内核型号是你的责任。有的51利用外扩地址空间扩展出更多RAM,那些就必须加xdata关键字来访问。速度会变的非常慢,但是你要忍,选择错误的内核型号是你的责任。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:879809 发表于 2021-1-23 17:14
你的data超了。51的data最大120个字节。
ID:626331 发表于 2021-1-23 16:58
不能这样子定义数组吧
ID:517951 发表于 2021-1-23 16:51
51单片机256byte RAM, 这么定义不够用,ram使用要节省再节省
ID:167760 发表于 2021-1-23 11:53
xhaity 发表于 2021-1-18 10:24
你用的什么mcu, 应该是ram不够用了,把table定义成常量试试

发现个规律编译时data超过128就不成功,求教从哪里可以设置吗
ID:167760 发表于 2021-1-23 11:48
zhai1995 发表于 2021-1-18 10:21
struct stu{
                     char *name;
                      int num;

试了一次,效果一样,想做菜单十组能编译,多了也不行
ID:373388 发表于 2021-1-18 10:24
你用的什么mcu, 应该是ram不够用了,把table定义成常量试试
ID:267932 发表于 2021-1-18 10:21
struct stu{
                     char *name;
                      int num;
                        char sex;
                        float score;
}class[5] = {
                         {"Li ping", 5, 'M', 45},
                        {"Zhang ping", 4, 'M', 62.5},
                        {"He fang", 1, 'F', 92.5},
                        {"Cheng ling", 2, 'F', 87},
                        {"Wang ming", 3, 'M', 58}
};


这样试下
ID:744327 发表于 2021-1-18 09:40

结构体使用错误
ID:752974 发表于 2021-1-18 09:18
结构体定义没问题,初始化不对过程不对。
ID:878235 发表于 2021-1-17 22:43
type 是不对的
ID:415064 发表于 2021-1-17 21:37
是要实参化14个keytable吗?语法是错误的,只能一个个定义
ID:517466 发表于 2021-1-17 20:00
单看table的定义实体,更像一个二维数组。结构体的定义和初始化可以这样用的吗?

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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