C语言函数调用问题

来源:本站
导读:目前正在解读《C语言函数调用问题》的相关信息,《C语言函数调用问题》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C语言函数调用问题》的详细说明。
简介:本文介绍了C语言中如果有函数未被调用将会出现的警告,以及相应的问题和解决方法。

***WARNINGL16:UNCALLEDSEGMENT,IGNOREDFOROVERLAYPROCESS

在Keil C中,如果没有显式调用到定义过的函数,就会出现这样的的警告。当出现这样的警告时,可以不用管,因为不影响其它部分。但是,我们知道,即使没有调用这个函数,Keil仍然把它编译连接进整个程序,不过浪费点ROM倒是不心疼。最主要的是,在这个函数中的变量,不会被列入覆盖分析范围内,也就是说这些变量占的空间不能被回收,这对于为数不多的RAM资源可是巨大的浪费啊。。。

当这个不被调用的函数写在C文件中时,可以把它注释掉来解决这个问题。我想知道的是,当我将一组函数包装成lib文件时,又怎么解决问题呢?总不能每次都重新生成lib吧,这样的话移植性不就成问题了?还有,Keil自带的库中必然有很多函数,也必然有很多用不到的,为什么就不没有UNCALLED SEGMENT呢?

(1)可以用条件编译啊,

#ifdef **

(程序段1)

#else

(程序段2)

#endif

**是在前面用#define定义的标识符,作用是如果定义了**,就编译(程序段1),否则编译(程序段2).

如果你一定要考虑可移植性的话,就这样做,否则还是

(2)直接用注释符隐蔽掉,或者直接删掉,会比较快

(3)想不显示这些提示:则可设置如下:

option for target

--->bl51 misc

--->disable warning ==这里写入16

提醒:《C语言函数调用问题》最后刷新时间 2024-03-14 01:01:20,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C语言函数调用问题》该内容的真实性请自行鉴别。