#define PR(a) printf(“%d“,(int)(a)) #define PRINT(a) PR(a);putchar(‘\n‘) #define PRINT2(a,b) .......

本文深入探讨了C语言中宏定义的使用方法,特别是如何利用宏定义进行条件判断和输出控制。通过一个具体的代码示例,展示了如何定义宏来简化代码中的条件运算表达式,并解释了宏在实际编程中的应用技巧。

以下程序运行结果______________.

#include<stdio.h>
#include<conio.h>
#define PR(a) printf("%d",(int)(a))
#define PRINT(a) PR(a);putchar('\n')
#define PRINT2(a,b) PR(a);PRINT(b)
#define PRINT3(a,b,c) PR(a);PRINT2(b,c)
#define MAX(a,b) (a<b?b:a)
void main() {
    int x = 1, y = 2;
    PRINT3(MAX(x++, y), x, y);
    PRINT3(MAX(x++, y), x, y);
    getchar();
}

本体疑难点:当运行第二次PRINT3的时候,x=y=2,要执行x++<y?y:x++,该表达式可以用if语句替换:

if(x++<y) 

        y;

else 

        x++;

本题运行结果: 

 

 

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h> #include <math.h> #include <ctype.h> #include <limits.h> #define EPS 1e-9 //浮点比较 #define MOD 998244353 //取模运算 #define MAX_LL 1000010//大型数组 #define MAX_L 1010 //小型数组 #define MAX_N 11 //矩阵阶数 #define PI 3.141592653//通用常数 #define EU 2.718281828//通用常数 #define in int #define ll long long #define db double #define ch char #define vd void #define uin unsigned int #define ull unsigned long long #define uch unsigned char #define br break #define cn continue #define rt return #define sc scanf #define pr printf //支持单元输入 #define scin(x) sc("%d", &(x)) #define scll(x) sc("%lld", &(x)) #define scdb(x) sc("%lf", &(x)) //支持空白略去 #define scch(x) sc(" %c", &(x)) #define scst(x) sc(" %s", (x)) //支持二元输入 #define scin2(x,y) sc("%d%d", &(x), &(y)) #define scll2(x,y) sc("%lld%lld", &(x), &(y)) #define scdb2(x,y) sc("%lf%lf", &(x), &(y)) //支持一元输出 #define prin(x) pr("%d", x) #define prll(x) pr("%lld", x) #define prdb(x) pr("%lf", x) #define prch(x) pr("%c", x) #define prst(x) pr("%s", x) //支持一元换行输出 #define prinn(x) pr("%d\n", x) #define prlln(x) pr("%lld\n", x) #define prdbn(x) pr("%lf\n", x) #define prchn(x) pr("%c\n", x) #define prstn(x) pr("%s\n", x) //支持一元精度输出 #define prdbr(x, r) pr("%.*lf", (r), (x)) //支持一元精度换行输出 #define prdbnr(x, r) pr("%.*lf\n", (r), (x)) //支持换行输出 #define prn pr("\n") //支持空格输出 #define prb pr(" ") //支持最值判断 #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) //支持浮点相等判断 #define CEPS(a, b) (fabs((a) - (b)) < EPS)请问,以此宏为基础,为我封装几个函数:对一个给定的数(long long):实现几个位操作:将第i位置1;将第i位置0;将第i到j位置1;将第i到j位置0;将第i翻转;将i到j位翻转;取出第i位;取出第i到j位存入数组
最新发布
12-03
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值