‘壹’ c语言中头文件中(比如stdlib.h)定义的函数在哪实现的,怎么才能查看到请高人解答
头文件是编译器自带的,你可以在编译器的文件夹下找到,不同编译器存放位置不一样,我用的vc++,位置是F:\Microsoft Visual Studio\VC98\Include,里面有stdio.h,和各种头文件。
找到后那记事本打开就能看了。
‘贰’ 用#include导入一个.h文件,该.h中声明了一个函数原型,编译器怎么知道定义该函数的.c文件的文件位置
反了,是从C找。H文件,C有#include,一找就找到了
‘叁’ 请问编译器是通过函数的入口地址来找到函数,那又是如何知道函数的结束呢
函数入口是一段指令的首地址,进入函数实际是从这段指令开始执行,执行到return语句,函数就结束了
‘肆’ 文件A.c里有a()函数,文件B.c里要调用a()函数。编译B.c时,编译器怎么知道a()函数在哪里
B.c中 #include "A.c"就行了,不过最好是做个头文件,把接口函数声明在头文件里面。
‘伍’ 使用DSP编译器ccs时,如何通过函数的调用处,快速找到函数的定义处。
CCS有这个功能啊!把鼠标移动到一个函数上面,就显示一个淡黄色的框,其中显示函数名称,点第一行的f符号就跳转到函数的原型,即函数的正文,点第二行的fx符号就跳转到这函数在头文件中的声明。
‘陆’ 在keil中,某个程序调用了一个外部函数,我怎么能知道这个外部函数在哪里呢
是你想找到那个函数还是想知道,程序是如何找到那个函数的。
你想找,就用 keil的查找功能,Edit-> Find in Files...
程序在编译时不需要知道它在哪里,只要知道它是个函数名,它的类型及参数列表就行。
在编译完链接时,会去查找工程中所有函数的列表,有没有这个函数,有就把函数地址放进来,没有就会报错。
‘柒’ 有没有一种编译器能在很多文件中查找某个函数 ,C写的 ,想快速查找某一个函数在哪一个C文件里面
一般的编译器都有 右键->Go to definition 的把
‘捌’ C语言的库函数放在什么地方(在什么目录里)
C语言的库函数在LIB目录里面。
库函数是将函数封装入库,供用户使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。
(8)编译器如何找到函数位置扩展阅读:
C语言的语句十分简单,如果要使用C语言的语句直接计算sin或cos函数,就需要编写颇为复杂的程序。因为C语言的语句中没有提供直接计算sin或cos函数的语句。又如为了显示一段文字,我们在C语言中也找不到显示语句,只能使用库函数printf。
C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。事实上,在编写C语言程序时,应当尽可能多地使用库函数,这样既可以提高程序的运行效率,又可以提高编程的质量。
‘玖’ 一直有个疑惑,C/C++编译器是如何调用函数的
函数的调用就是 跳转到函数体的入口地址。
函数体本身的存储空间是在exe里txt段,然后运行加载的时候映射到地址空间。不过看你的问题,你关注的不是这个的占用。
关于你问的问题, 其实是因为一旦定义了虚函数,在C++类型的头部,就会有一个指针的隐藏变量被定义,从而该类型的每个对象都会有这个变量的大小。 这个只有类型有和没有虚函数的区别,虚函数的个数造成内存增长只是虚表里(每class一个),每个对象里只是存的一个指针,不会有size变化。
对于非虚的函数,编译的时候,直接就是填写的函数体的入口地址; 而虚函数,则是要经过计算,先通过对象头部寸的虚表指针找到虚表,再去找对应的虚表项 ,里面存储的就是需要的函数的入口地址。
建议楼主看看 C++布局方面的书,比如 <Inside C++ Object Model>, 以及平时多用VS操练一下调试技巧,然后适当熟悉简单的汇编代码,对融会贯通很有帮助。
‘拾’ 编译器如何判断一个函数在cpp文件里的位置(即如何判断一个函数是否正确)
如果是普通的函数,可以在A文件中进行声明,B文件中进行定义,C文件中使用。但是如果该函数是类的成员函数,那么使用该函数需要使用对象进行调用,不能直接进行调用。