搜索
bottom↓
回复: 11

求助:关于inline的问题

[复制链接]

出0入0汤圆

发表于 2008-1-15 18:02:03 | 显示全部楼层 |阅读模式
我的环境是:AVRStudio v4.13 sp2 + WINAVR 200701221
实验代码为:
#include "avr/io.h"
#include "avr/iom16.h"

inline void delay(unsigned int n)
{
        while(n--)asm("nop");
}
int main(void){
        delay(1000);
        while (1);
}
编译提示两个警告为:
../m16study_leds.c:5: warning: C99 inline functions are not supported; using GNU89
../m16study_leds.c:5: warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
问题是:
    如何正确的使用内联函数呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2008-1-15 18:04:09 | 显示全部楼层
你把编译器标准改用GUN99就行了。

出0入0汤圆

 楼主| 发表于 2008-1-15 18:05:30 | 显示全部楼层
请问在哪里设置呢?我初学。

出0入0汤圆

 楼主| 发表于 2008-1-15 18:13:19 | 显示全部楼层
发现已经是GNU99了,还有什么地方需要设置呢?

出0入0汤圆

 楼主| 发表于 2008-1-16 09:20:30 | 显示全部楼层
今天又可以了,不知道怎么回事,可能需要重启集成环境吧。谢谢小苦提示。

出0入0汤圆

 楼主| 发表于 2008-1-16 10:07:15 | 显示全部楼层
问题还是出现了,现象如上,请各位帮忙解答

出0入0汤圆

发表于 2008-1-16 11:32:55 | 显示全部楼层
把内联函数放头文件里并加静态修饰符

出0入0汤圆

发表于 2008-1-16 11:53:37 | 显示全部楼层
点击此处下载ourdev_201908.rar(文件大小:6K)

我不喜欢用avrstudio,而且也没用过。我是直接打make编译。这个压缩包里有我用的makefile,你试试编译,没问题。

出0入0汤圆

 楼主| 发表于 2008-1-16 12:08:27 | 显示全部楼层
谢谢,把内联函数实现写在头文件里头就问题解决了。
发现个问题:
1.如果在AVRSTUDIO项目中添加一个空的源码文件,里面只有包含头文件,没有任何其他代码。
2.如果写
while(1){
    ;//一个分号
}
以上编译都可以通过,但按仿真后,集成环境就会弹出未知错误并关闭。不知是不是个别现象。

出0入0汤圆

 楼主| 发表于 2008-1-16 12:48:32 | 显示全部楼层
../m16study_leds.c:5: warning: C99 inline functions are not supported; using GNU89
有以上这个提示我又做了修改,把GNU99改成GNU89,内联函数的写法就没有警告了。难道是99版的不支持内联函数inline?

出0入0汤圆

 楼主| 发表于 2008-1-16 14:33:29 | 显示全部楼层
从国外论坛上发现的
According to the proposal, we will restore the GNU handling for
"extern inline" even when using -std=c99, which will fix the problem
when using glibc.

(Then we will break it again in gcc 4.4, but by then we can hope that
glibc will be fixed, and we can force people who want to use -std=c99
or -std=gnu99 on GNU/Linux to upgrade to a newer glibc.)

我用的winavr中的gcc是GCC 4.2.2
根据上面帖子了解下个版本才能正常支持inline

出0入0汤圆

发表于 2014-11-26 08:49:06 | 显示全部楼层
mark  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 06:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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