在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 1664|回复: 0

[求助]一个c函数的inline问题

[复制链接]
发表于 2005-4-9 11:53:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[这个贴子最后由bluepuma在 2005/04/09 12:03pm 第 1 次编辑]

小弟初学arm,遇到一个c函数的inline问题,希望高手给以解答。
我把一个函数声明为inline函数,例如:
int __inline cFunc(int x, int y )
{
  int z;
  ...
  ...
  return z;
}
  首先,这个函数在ads下可以编译通过,而在sdt下编译不通过,编译器不认__inline;
  其次,编译完成后,我看了一下编译后的代码,这个函数并没有实现inline,
仍旧是跳转进入的

  而且,armcc的编译选项中,似乎没有与inline相关的设置,对此我很迷惑,
希望高手能解小弟之忧!!
  还有就是,如果我把上述的示例函数改为define,再将汇编代码直接嵌入c代码中,我该怎么写,怎么解决运算结果的返回问题(代码如下所示);
#define cFunc(x, y) \
  ({ int z;      \
     _asm{       \
          ...    \
          }      \
        z        \/*z,怎么处理*/  
   })   
  首先是编译器在这里不认第2行中的"{",而在这里我声明了局部变量,嵌入了汇编代码,必须用{ }将其括入;而且即使解决了这些问题,我又该如何将作为运算结果的局部变量z返回,这样的define中是不能用return 的,在嵌入的汇编代码中能添加什么语句解决这个问题么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-10 05:31 , Processed in 0.022578 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表