| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:宏定义问题
只看楼主 加入收藏
yeqishi
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-19
结帖率:0
收藏
 问题点数:0 回复次数:1 
宏定义问题
请问大家这样的语句合法吗,我在单文件里定义好这个式子预编译不报错,但调用后出错了,如下
定义:
#define Delayns(n) _nop_(); \
    n?Delayns(n-1):_nop_();

调用后错误提示
*******.C(87): warning C206: 'Delayns': missing function-prototype
*******.C(87): error C267: 'Delayns': requires ANSI-style prototype
搜索更多相关主题的帖子: 定义 
2010-03-10 10:56
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
我看了下预编译后的文件,发现宏展开后为:_nop_(); n?Delayns(n-1):_nop_();
Delayns(n-1)没有被进一步展开,我想是因为你递归时无论你的n的值是多少,Delayns(n-1)这个表达式是会一直存在的,然后就会继续展开直到无穷。。。所以编译器的预处理时就只展开了第一次,所以在编译时就会提示你找不到Delayns()的原型。。。
2010-03-10 11:37
快速回复:宏定义问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029386 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved