打印

KEIL 编译

[复制链接]
1328|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wgz1626|  楼主 | 2010-11-25 17:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好:
请教一个问题。
我在程序里面这样定义:unsigned char code StartCode[3]={'K','G','I'};
编译时要出现一条警告:

*** WARNING 16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?CO?BASS601

要是我这样定义:unsigned char StartCode[3]={'K','G','I'};
就没有警告。
不知道什么原因,特此请教,谢谢。因为有时候要把一些数据放在ROM内。

相关帖子

沙发
liang7143| | 2010-11-25 17:47 | 只看该作者
不是都告诉你了~
这个变量没有使用~~
unsigned char StartCode[3]={'K','G','I'};这样定义 编译器会优化掉
unsigned char code StartCode[3]={'K','G','I'}; 这样会占用code空间

使用特权

评论回复
板凳
wgz1626|  楼主 | 2010-11-27 20:40 | 只看该作者
不明白2楼的意思,应该不会有警告才对。我不知道什么原因。

使用特权

评论回复
地板
原野之狼| | 2010-11-28 00:15 | 只看该作者
警告就是资源没有使用 你可以不理会它

使用特权

评论回复
5
STM32W| | 2010-11-28 08:07 | 只看该作者
本帖最后由 STM32W 于 2010-11-28 08:08 编辑
不明白2楼的意思,应该不会有警告才对。我不知道什么原因。
wgz1626 发表于 2010-11-27 20:40


楼主定义了一个变量,这个变量本来是应该占用存储空间的。
但是,楼主你的程序并没有使用这个变量,这个变量根本没有意义。

编译器是保留一个没有意义的变量,并为它分配存储空间呢?
还是直接忽略这个变量,当这个变量就根本不存在?

KEIL 的警告告诉我们,它是把这个没有使用的变量忽略了。
并且给你一个警告。

通常编译器都会直接忽略掉没有意义的变量,也可能没有警告。
如果是IAR,有关键字__root告诉编译器,即使变量不被使用,也要分配存储空间,连接到代码里。

使用特权

评论回复
6
ningling_21| | 2010-11-28 10:31 | 只看该作者
LZ要多看看KEIL的使用手册...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

30

帖子

0

粉丝