首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教一个宏替换的有关问题

2012-02-26 
请问一个宏替换的问题怎么做引号内的内容也能进行宏替换比如#defineA1我希望通过A这个宏来打印出Ais1print

请问一个宏替换的问题
怎么做引号内的内容也能进行宏替换
比如
#define   A   1

我希望通过A这个宏来打印出A   is   1
printf( "A   is   A ")
谢谢
对第二个A应该如何处理,或者宏应该如何定义
谢谢

[解决办法]
printf( "A is %d ", A)

[解决办法]
你想通道A这个宏来打印出A is 1,这里A的值是可变的.所以单独一个宏名是不能的.建议如下定义宏
#define A(value) printf( "A is %d ",value)
只有通过一个参数才可能输出A是任意值
[解决办法]
#define PRINT(A) printf( "%d is %d ", A, A);
这样可以吗?
[解决办法]
不好意思,刚才头晕,问题完全描述错了
汗~
我是希望定义一个宏
#define PRINT(A) ???
能达到使用PRINT(B)后的效果是
printf( "B is %d ",B)。


好像不可以,如果PRINT(A)只传入了变量的值这一个参数,可以这样写:
#define PRINT(A,B) printf( "%c is %d ",A,B)

使用的时候
int b=3;
PRINT( 'b ',b);

热点排行