c语言内联函数使用 c 内联函数

关于C语言内联函数

C语言本身是不支持内联函数的,在最新的C标准C99中C语言支持了内联函数。

创新互联建站成立于2013年,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元汝南做网站,已为上家服务,为汝南各地企业和个人服务,联系电话:18980820575

C++支持内联函数。

从编译器的角度:

有些C语言编译器,例如GNU C提供了内联函数的支持。

所有C++编译器都支持内联函数。

如果你的C语言编译器不支持内联函数,看看它有多古老,太古老不行(例如 Turbo C 2.0)。如果是C/C++合体编译器,那就切换到编译C++模式(例如VisualC++)。

C语言中 内联函数的速度快于普通函数,普通函数存在的作用是?为什么不都用内联函数代替?

速度是有代价的,inline和宏都是用空间换时间。

使用内联函数的时候要注意:

1.递归函数不能定义为内联函数

2.内联函数一般适合于不存在while和switch等复杂的结构且只有1~5条语句的小函数上,否则编译系统将该函数视为普通函数。

3.内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。

4.对内联函数不能进行异常的接口声明。

C语言inline函数

普通的函数在调用的时候需要消耗栈空间,cpu和内存利用率会增高,c99中引入了inline关键字,可以在编译的时候,在函数调用处直接把函数像宏一样展开,这样在增加代码空间的情况下降低了cpu和内存的使用。

1、如果Inline函数定义在cpp/c文件中,则本文件里的函数调用会转换为内联代码,但是其他文件的函数调用还是和普通函数一样(gcc标准和c99标准有差别,有可能链接时会找不到函数符号)。

2、如果inline函数定义在.h文件中,则其他文件的函数调用也会转换为内联代码。

3、由于内联函数调用时候不会压栈,所以函数不能是递归函数。


网页名称:c语言内联函数使用 c 内联函数
URL分享:http://hbruida.cn/article/dopeiod.html