十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言本身是不支持内联函数的,在最新的C标准C99中C语言支持了内联函数。
创新互联建站成立于2013年,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元汝南做网站,已为上家服务,为汝南各地企业和个人服务,联系电话:18980820575
C++支持内联函数。
从编译器的角度:
有些C语言编译器,例如GNU C提供了内联函数的支持。
所有C++编译器都支持内联函数。
如果你的C语言编译器不支持内联函数,看看它有多古老,太古老不行(例如 Turbo C 2.0)。如果是C/C++合体编译器,那就切换到编译C++模式(例如VisualC++)。
速度是有代价的,inline和宏都是用空间换时间。
使用内联函数的时候要注意:
1.递归函数不能定义为内联函数
2.内联函数一般适合于不存在while和switch等复杂的结构且只有1~5条语句的小函数上,否则编译系统将该函数视为普通函数。
3.内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。
4.对内联函数不能进行异常的接口声明。
普通的函数在调用的时候需要消耗栈空间,cpu和内存利用率会增高,c99中引入了inline关键字,可以在编译的时候,在函数调用处直接把函数像宏一样展开,这样在增加代码空间的情况下降低了cpu和内存的使用。
1、如果Inline函数定义在cpp/c文件中,则本文件里的函数调用会转换为内联代码,但是其他文件的函数调用还是和普通函数一样(gcc标准和c99标准有差别,有可能链接时会找不到函数符号)。
2、如果inline函数定义在.h文件中,则其他文件的函数调用也会转换为内联代码。
3、由于内联函数调用时候不会压栈,所以函数不能是递归函数。