A. 编译器会把cpp文件中没被调用的函数编译到obj文件中吗
生成.o文件(obj文件)时,会生成这个函数的相关代码。
但是在链接时,即在生成可执行程序时,因为函数没有被调用到,应该不会链接进去。
B. 在Keil uVision4中,用C语言,不调用的子程序,会不会编译
1. “这两者都是用相同软件,有何区别?”
是不同的软件。
2. “为什么8051不可以自动不编译没有调用的子程序?”
因为用户可能在汇编中隐式调用某个字程序。
对于你所说“在编译ARM(LPC1768)时,有子程序没有被调用,不会有警告,不调用的程序有不会编译为代码”我持怀疑态度。
不管哪种方式编程都很有可能隐式调用函数的,如通过函数指针。所以不编译非显式调用的子程序是明显违反编程人员意图的行为。两种可能:默认项目设置不当;或者对这类子程序需要添加特别的类型说明或编译开关。
想知道两种编译套装的区别,最好的资料就是其自带的说明文档。那几十兆的说明文档看下来包你受益无穷。
C. 未被调用的函数是否也会被编译进程序里
这个要看是编译性语言还是解读性语言,比如html之类的是读到哪里编译到哪里
D. C语言中一个函数如果在主函数中没有调用,会被编译么
会的,当你运行时,编译器还要检查你的函数是否有格式或其它错误!
E. keilc中怎么使一个库函数不调用时不编译
它不会被嵌入代码而占用空间的,当然动态链接库除外。KEIL把源代码编译成最终执行代码,要经历两个过程,一是编译:即把源文件编译成中间目标文件,简单的说是把C文件编译成.O或.obj文件;二是链接,这个是生成可执行文件的关键,它会根据MAIN函数头和各个中断函数中调用的函数去中间目标文件中选择对应的代码并最终打包到一起生成可执行文件。所以,声明未被用到的函数是不会占用程序存储空间的,但是它会被编译,只是在连接时不会被选用。希望对你有帮助!!!
F. 单片机C语言编程,假如头文件里的函数没有被调用,那么该函数会不会最后编译出来而占用内存
没有用到自然就不会被编译,就不会占空间
如果头文件定义有1000个函数
你的程序只用了1个函数
那么编译后的程序,只有这一个函数的内容
G. c语言中,程序中有子函数,但主函数没有调用子函数,那么这个子函数会参与编译吗
编译肯定是要参与的,你如果在子函数中特意写错一个地方,在编译的时候会报错,这表示这个子函数在被编译的时候出错了。
H. python中def函数在编译时不调用会运行么
不会,只要没有调用到就不会运行代码
I. C++中类成员函数未实现,是否能够编译链接通过
如果该成员函数没有被调用,那么就不会对编译连接产生影响,可以通过编译。
J. keil4如何在编译时不编译未调用的函数
会全部编译的,在链接阶段,未调用的函数,会自动被优化掉