C51不支持内联。用宏展开吧。一样。 |
把编译器调成C99模式 |
都支持inline,但是inline不是c语言关键字,每个编译器实现都不一样,到底应该怎么写要查手册。 |
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 |
C51 不支持 inline 关键字。 |