在Keil uVision4中,用C语言,不调用的子程序,会不会编译?

在编译8051时,如果有一个或者多个子程序没有被调用,就会有警告,说有程序没有被调用。而且没有调用的子程序代码,也会被编译; 在编译ARM(LPC1768)时,有子程序没有被调用,不会有警告,不调用的程序有不会编译为代码。 问题:这两者都是用相同软件,有何区别?为什么8051不可以自动不编译没有调用的子程序?
这是我自己亲自试过的,ARM编译时,确实如此,我想知道Cx51,MDK两者的设计的不同,及资料。

1. “这两者都是用相同软件,有何区别?”
是不同的软件。

2. “为什么8051不可以自动不编译没有调用的子程序?”
因为用户可能在汇编中隐式调用某个字程序。
对于你所说“在编译ARM(LPC1768)时,有子程序没有被调用,不会有警告,不调用的程序有不会编译为代码”我持怀疑态度。

不管哪种方式编程都很有可能隐式调用函数的,如通过函数指针。所以不编译非显式调用的子程序是明显违反编程人员意图的行为。两种可能:默认项目设置不当;或者对这类子程序需要添加特别的类型说明或编译开关。
想知道两种编译套装的区别,最好的资料就是其自带的说明文档。那几十兆的说明文档看下来包你受益无穷。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-23
你好,我也用这款软件,更正一个观点:不调用的子程序(module模块),编译器仍旧编译,占用空间,只是不链接,这个可以在输出的汇编中看到分配的段。其次编译是8051有告警是你IDE里告警选项设置问题,可以设置为不告警。
第2个回答  2012-03-21
开发编译工具的开发人员的思维方式不用,当然开发出来的工具也存在差异。
没调用的程序被编译很正常啊,VC就是这样的,只要不连接到生存的HEX文件中就可以了。
问题的关键是在于生成的HEX文件有没有包含没调用但编译了函数。
第3个回答  2012-03-16
软件的属性问题。

keiluvision4使用方法
1. 打开KeiluVision4,从菜单栏选择Project->New uVision Project。2. 在新建工程窗口中,输入工程名称,选择所需的目标MCU类型,然后点击“OK”按钮。3. 在创建好的工程中,从菜单栏选择File->New->New Source新建源文件。4. 选择C\/C++文件作为源文件,点击“Add”按钮,添加源文件。5. 在源文件...

keil uvision4 如何反编译c语言 到汇编语言!!就是把c 编译成汇编!!!谢...
这个过程不是“反编译”而是“编译”。正常编译过程中都会生成临时汇编文件的,你可以在项目选项中的lst输出中勾选Assembly,即将编译的中间汇编代码输出到LST文件中。

keiluvision4怎么用
keiluvision4使用方法是:1、打开keil4,点击project,在新建uVisionproject。2、首先要选择保存的途径,在新建文件名,最后保存文件。3、保存文件后会弹出窗口,选择要运行的文件,选好后点击“OK”会弹出“是”还是“否”窗口,只需点击否即可。4、新建编写程序窗口。5、在编写程序窗口编写程序。6、保...

keil uv4 是干什么的
Keil uv4 是美国Keil Software公司出品的单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合...

keil uvision4工程建立问题
1) 到深圳宏晶的官网上找解决方案,说的很详细。2) 软件没有破解,破解了就可以了。3) 应该能放下,但机内码的量与C语言的源代码量无法精确比较,所以也有放不下的可能。

我在keil中用C语言编程 直接复制的能从VC++6.0中运行的一段程序 到了K...
keil也没有,需要你自己定义的。象beep函数keil不知道你的蜂鸣器在那个管脚接着。sleep在windows中是让系统调度,keil默认是没有的。从vc中拷代码到keil中,你只能拷标准C定义的基本语句,编译器自带函数就不要随便拷贝了,当然象printf还可以拷一下,但是你也要自己初始化串口。

我采用标准C或C++,请问如何设置才能编译生成.hex文件
在keil uvision4中编译好代码(c或汇编),然后在target 位置右击,选择第一个选项,进入,在菜单栏中点击output,把生成hex文件前面方框选中,重新编译生成就生成了hex文件,再用stc-isp 软件载入hex文件,然后下载到单片机。

Keil如何进行编译和调试
在Keil uVision4主界面中,找到菜单栏中的 工程选中打开,然后在打开的下拉菜单中选择 编译;另外一种方法是我们可以直接选择主界面中的工具栏按钮直接进行编译;编译操作结束等待一会之后,编译的信息就会出现在主界面的Build窗中,“ 0 Error,0 Warning”表示程序中没有错误的语法出现,如果存在有错误的...

keil4使用教程
4、保存之后就可以就行编译了,点击左侧的目标+然后找到资源再点击右键添加资源到组“资源组1”然后找到刚刚保存的c语言程序,添加上去,添加一次然后关闭 5、然后点击目标1右边的图标进去然后选择第三个标题输出项把那个产生hex文件前面勾上然后确定就可以生成hex文件就可以拷到proteus仿真软件中去用用了 ...

keil uvision4出现warning
你把你建的C语言文件(就是有.c的那个文件)导入到你建立的项目里面去 试试 0Error 说明bianc编的没错 3Warning 警告什么 我也不懂 = =‘...右键点击你的项Target目下的那个文件夹—Add Files to Group’ Source group 1' 然后选你的.c那个编程文件 Add 导入 试试 ...

相似回答