找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1181|回复: 5
收起左侧

C语言有内联函数吗,为什么编译失败。

[复制链接]
ID:709761 发表于 2023-1-17 16:36 | 显示全部楼层 |阅读模式
C语言有内联函数吗,为什么编译失败,哪里写错了。
51hei图片_20230117163420.png
回复

使用道具 举报

ID:94031 发表于 2023-1-17 20:36 | 显示全部楼层
C51 不支持 inline 关键字。
回复

使用道具 举报

ID:155507 发表于 2023-1-17 21:39 | 显示全部楼层
Keil C51不支持inline
inline是C++的特性,即使是ANSI C也是不支持的,我也查了一下KeilC51 Compiler的用户手册,没有关键字inline的支持。

ANSI C 在C99中引入了Inline关键字,但默认情况下,Keil Arm C编译器以C89/C90模式编译。

Keil文档明确表示,C90中没有内联信息

如果你要进行跨平台的编程,可以在编译单元头部定义一下预处理指令,避免修改C的源代码:
比如:
#ifdef __C51__
#define inline
#endif

另外,我建议不要试图写宏代码来间接达到inline的效果,因为宏代码实在是太容易出错了。
(个人观点)

https://developer.arm.com/documentation/ka003625/latest
回复

使用道具 举报

ID:883242 发表于 2023-1-17 21:42 | 显示全部楼层
都支持inline,但是inline不是c语言关键字,每个编译器实现都不一样,到底应该怎么写要查手册。
回复

使用道具 举报

ID:130230 发表于 2023-1-20 14:05 | 显示全部楼层
把编译器调成C99模式
回复

使用道具 举报

ID:146878 发表于 2023-1-30 10:45 | 显示全部楼层
C51不支持内联。用宏展开吧。一样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表