static 与inline 不能同时使用吗?

关注

技术 嵌入式 sgf201    2018-06-13   |   浏览量 148  
STM32在KEIL中的代码,有一个函数声明是 static inline int aaaaa(int b); 这个样子,编译的时候总是报inline 没有定义,去掉就正常了?这里是static和inline有冲突吗?代码原来是运行到linux上的,linux下没有这个限制是吗?

最佳答案

  • 袁建明 发表于2018-06-13 云汉达人

    而在keil环境下,需要写成static __inline,在linux下是不用两个下划线的,在keil中是需要两个下划线的。Keil中对于inline声明的关键字与linux不同。这一点在移植代码到不同平台时非常重要。

    回答点赞:   skawu xdsnet 举报 评论2 2

    奔跑的黑蚂蚁 回复了 Angel_YY:Static是静态变量,那这个inline是什么意思? 回复
    Angel_YY 回复了 Angel_YY:内联函数声明 回复

其他答案

  • donatello 发表于 2018-06-13

    CodeBlocks环境下static和inline可以同时使用,MDK对inline的处理比较复杂,有时候会报错,如果用的话建议加下划线。

    举报 评论 0

  • 勇哥来巡山 发表于 2018-06-13

    这个要看编译器是否支持,比如keil就不能同时使用,但是IAR可以

    举报 评论 0

  • chen0000009 发表于 2018-06-14

    在MDK下面,static和inline之间要加两条下划线

    举报 评论 0

  • @曲终人散@ 发表于 2018-06-14

    可以同时使用,linux内核源码中很多这样的代码

    举报 评论 0

  • apleilx 发表于 2018-06-14

    MDK 下的 inline前面有两个下划线。可以用系统重定义的__STATIC_INLINE来代替,ARM核心的头文件基本都是__STATIC_INLINE,可以跨IDE使用,IAR,GCC什么的都支持。

    举报 评论 0

  • 菜鸟冷虎 发表于 2018-06-14

    MDK环境先是不能同时使用的,需要加下划线,但是在GCC下可以同时使用

    举报 评论 0

  • 一笔之名也 发表于 2018-06-15

    是的,在keil下是不可以的。但是使用gcc编译器是没有问题的。

    举报 评论 0

我来回答

试用推荐

ESP32 WIFI+蓝牙

产品总数:50个  申请人数:233

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
回答问题攒积分送开发板