C中函数inline定义问题,如果在头文件abc.h中用声明了函数test,并且用inline定义了它的内容,但在abc.c文件中又对test进行了定义,那么使用是,具体用到的是哪个定义?还是需要分情况,如何判定?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 12:39:58
C中函数inline定义问题,如果在头文件abc.h中用声明了函数test,并且用inline定义了它的内容,但在abc.c文件中又对test进行了定义,那么使用是,具体用到的是哪个定义?还是需要分情况,如何判定?

C中函数inline定义问题,如果在头文件abc.h中用声明了函数test,并且用inline定义了它的内容,但在abc.c文件中又对test进行了定义,那么使用是,具体用到的是哪个定义?还是需要分情况,如何判定?
C中函数inline定义问题,
如果在头文件abc.h中用声明了函数test,并且用inline定义了它的内容,但在abc.c文件中又对test进行了定义,那么使用是,具体用到的是哪个定义?还是需要分情况,如何判定?

C中函数inline定义问题,如果在头文件abc.h中用声明了函数test,并且用inline定义了它的内容,但在abc.c文件中又对test进行了定义,那么使用是,具体用到的是哪个定义?还是需要分情况,如何判定?
你没有给出具体源码,所以只能猜,据我所知,有一种情况可能符合你的描述:
这种用法,同一个文件内的inline test函数会被内联展开,其他文件的test函数,会编译成普通函数来调用.
根据你的提问可以理解为:abc.h中的test函数,被abc.h内联展开.abc.c中的test函数,被abc,c调用,与abc.h里面的test无关.如果还有def.c调用test,那么调用那个的是abc.c中的.前提是abc.c和def.c不包含abc.h,如果包含abc.h那么调用test函数的地方,会被abc.h中的test函数进行内联展开.
GCC编译器和 C99编译器代码有所不同,都可能能达到你描述代码的要求,说可能是因为我只在gcc编译器上编译过类似代码,c99的用法是网络文章说的,我没试过,所以只能说可能.

C中函数inline定义问题,如果在头文件abc.h中用声明了函数test,并且用inline定义了它的内容,但在abc.c文件中又对test进行了定义,那么使用是,具体用到的是哪个定义?还是需要分情况,如何判定? 在什么情况下适宜采用inline定义内联函数 用inline定义函数后怎么用plot将其画出用inline定义函数y=x*exp(-x)*sin(x);并用plot绘制其在[-pi,pi]上的图像. 我想请问一下 已经在matlab中定义了两个函数 怎么把他们求和,获得新的函数.f=inline('sin(theta*pi/180)+2','theta');a=inline('2','theta');theta=linspace(0,2*pi);r=a+f;polar(theta,r);真的完全初学 c或c++的头文件放的是函数的声明,那么c中函数的定义放在哪个地方,c++的函数定义是放在名空间std中吗 EXCEL表格函数定义问题在表格中定义某列,例如:B列,1=A;2=B;3=C;4=D.,请问如何写入函数?不能定义整个表格,如果定义了整个表格就会造成数字错乱,只能定义其中一列.说的够明白了吧?简单点说,就 C语言定义函数问题定义的函数如果在运行时return了某个值,还会继续向下运行吗? inline hook只能hook在函数头部吗 在C语言中如何定义逆序数函数 C++中成员函数如何在类定义体外定义假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为 c/c++ 里面有个判断正负的Sgn函数,请问包含该函数定义的头文件是什么?我在程序里面用了Sgn函数,但是编译结果说符号未定义,我已经包含了math.h头文件,请问问题出在哪里? undefined reference 一个类中定义:inline double getLambda()const{cout 在C语言中,函数不能嵌套定义,但是我不知道什么是嵌套定义? C言语中函数定义的形式参数变量为什么不能在定义 C语言程序设计中,要调用的函数必须在main()函数中定义 c语言问题,函数内部可不可以定义别的函数, C语言:可以在一个函数中定义另一个函数为什么不对? vim 中C-W快捷键的 定义原函数在哪函数