5316|11

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于宏的定义 [复制链接]

uchar Printf_CHINESE32x32_ASC16x32(bit cr, uchar uRow, uchar uCol, char *fmt, ...);
uchar dprintf(bit flag, uchar fontASC, fontCHI, uchar uRow, uchar uCol, char *fmt, ...);

如何定义一个宏,使这两个函数通用?

#define  Printf_CHINESE16x14_ASC8x12(x1, x2, x3, x4); dprintf(x1, ASC8x12, CHINESE16x14, x2, x3, x4);

#define  Printf_CHINESE16x14_ASC8x12(x1, x2, x3, x4, ...); dprintf(x1, ASC8x12, CHINESE16x14, x2, x3, x4, ...);
我做了这两个宏定义,但有错!请高手赐教

最新回复

C语言不支持变参宏。  详情 回复 发表于 2007-4-17 23:40
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
如何定义一个宏,使这两个函数通用?

通用?

是不是说是.
Printf_CHINESE16x14_ASC8x12(..);//相当于调用:dprintf(..);
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
#include
#define ABC abc

int abc(int c)
{
    return (c + 5);   
}
int main()
{
    int a = 0;
   
    a = ABC(8) + 1;
   
    printf("%d",a);
    system("PAUSE");
    return 0;   
}
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
是啊,有什么好方法吗?我要是源改程序的话,代码太多了,而且容易出错
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
我去了分号也试过,不行!这是一个相当于C语言中printf()格式化输入出函数。
分两种方式考虑:1、printf("abc"); 2、char abc[] = "abc"; printf("%s",abc);即有参数和无参数,如何实现定义一个宏?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
关注
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

7
 
多谢关注,更要解决方案
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
我给的那个例子没看懂?

你要的不只是一个换个名字嘛??

 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

9
 
uchar Printf_CHINESE32x32_ASC16x32(bit cr, uchar uRow, uchar uCol, char *fmt, ...);
uchar dprintf(bit flag, uchar fontASC, fontCHI, uchar uRow, uchar uCol, char *fmt, ...);

第二个比第一个函数多两个参数,怎么解决?
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
那就不用宏,直接定义函数,通过参数来传值...
 
 
 

回复

99

帖子

0

TA的资源

一粒金砂(初级)

11
 
不用宏的,完全可以定义两个相同名字但参数不同的函数,编译器在调用时根据实参能确定该调用哪个的
uchar MyPrintf(bit cr, uchar uRow, uchar uCol, char *fmt, ...);
uchar MyPrintf(bit flag, uchar fontASC, fontCHI, uchar uRow, uchar uCol, char *fmt, ...);
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

12
 
C语言不支持变参宏。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表