C语言数据类型形式转换与隐式转换,以及宏定义

本文探讨了C语言中的宏定义,包括一级传参、字符串化操作(#)和连接操作(##),并举例说明了如何使用宏定义进行数据类型的隐式转换。示例中展示了Str宏将常量转换为字符串,以及FUN宏如何结合e进行指数运算。通过代码实例,解释了SUM宏如何进行简单的加法操作,并展示了实际运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//宏定义:宏定义只能做一级传参,凡是有#或者##的地方,不在进行替换

//param:#
//
#define INT_MAX 0x7fffffff;
#define A 3
#define _Fun(x,y) (int)(x##e##y)
#define Str(x) (#x)
#define FUN(x,y) _Fun(x,y)
#define SUM(x,y) (x+y)

int main()
{
char* TestChar = Str(hello);
printf(“num value is:%s\n”, TestChar);
//char* num = Fun(“as”, “cd”);
//printf(“num value is:%s\n”,num);
char* testchar2 = Str(INT_MAX);
printf(“num value is:%s\n”, testchar2);
int Testnum2 = FUN(A,A);
printf(“num value is:%d\n”, Testnum2);
Testnum2 = SUM(A, A);//如果不是#或者##,宏会继续展开
printf(“num value is:%d\n”, Testnum2);

int TestNumber = -1;

if (TestNumber < sizeof(int))
{
    printf("Test Numer < sizeof(int)");
}
else
{
    printf(" invalid Test Numer < sizeof(int)%d\n",TestNumber);
    printf(" invalid Test Numer < sizeof
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值