当前位置: 技术问答>linux和unix
关于inline内联函数
来源: 互联网 发布时间:2015-07-07
本文导语: gcc支持内联啊 但是我在test.h中定义一个inine函数后 然后在test1.c,test2.c中调用这个内联函数 结果gcc说函数重复定义,这样的语法在vc以及其它编译器中都是支持的啊(我现在在做移植),难道gcc下不能这样写? 那gcc...
gcc支持内联啊
但是我在test.h中定义一个inine函数后
然后在test1.c,test2.c中调用这个内联函数
结果gcc说函数重复定义,这样的语法在vc以及其它编译器中都是支持的啊(我现在在做移植),难道gcc下不能这样写?
那gcc下的内联函数应该怎样写啊?
但是我在test.h中定义一个inine函数后
然后在test1.c,test2.c中调用这个内联函数
结果gcc说函数重复定义,这样的语法在vc以及其它编译器中都是支持的啊(我现在在做移植),难道gcc下不能这样写?
那gcc下的内联函数应该怎样写啊?
|
inline函数得加上static。
-finline-functions
Integrate all simple functions into their callers.
The compiler heuristically decides which functions
are simple enough to be worth integrating in this
way.
If all calls to a given function are integrated,
and the function is declared static, then GCC nor-
mally does not output the function as assembler
code in its own right.
得是static的inline函数才有效。。。
-finline-functions
Integrate all simple functions into their callers.
The compiler heuristically decides which functions
are simple enough to be worth integrating in this
way.
If all calls to a given function are integrated,
and the function is declared static, then GCC nor-
mally does not output the function as assembler
code in its own right.
得是static的inline函数才有效。。。
|
也是一样的,是不是头文件定义出了问题,把大概的程序贴出来让大家看看
|
gcc当然支持了,贴代码看看
|
gcc是C嘛,不是c++啦,呵呵
|
C++标准说,inline只是对编译器的一个建议,而且无法inline时需要当作普通函数处理而不是报错。很多编译器(好像是从Borland C++ DOS版就开始的)因为对一个函数判断是不是inline上很麻烦,还受调用方的影响,所以常常就按非inline处理了。