阿伦


私信TA

用户名:874501825

访问量:17274

签 名:

等  级
排  名 1112
经  验 3096
参赛次数 3
文章发表 7
年  龄 0
在职情况 学生
学  校 汕头大学
专  业

  自我简介:

TA的其他文章

解题思路:
C语言中的宏允许带有参数,包含形参实参,在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,无参宏的宏名后不带参数,其定义的一般形式为:

 #define 标识符 字符串; 例如#define m a*b;

其中a*b的值就是m,在主函数中m就是调用a*b;

带参宏定义的一般形式为: 
#define 宏名(形参表) 字符串; 
在字符串中含有各个形参。 
带参宏调用的一般形式为: 

#define y(a,b)  t=a,a=b,b=t;
宏名(实参表),其中a,b就是实参,通过在主函数中输入,然后通过宏定义的预处理,也就是后面的字符串(t=a,a=b,b=t)来运算,在主函数中得到调用。

注意事项:
一般我们在定义宏的时候要根据形参和实参的需要来选择,该题中我们要运用到实参
参考代码:

#include <stdio.h>
#include <math.h>
#define chang(a,b) t=a,a=b,b=t;
int main()
{
    int a,b,t;
    scanf("%d %d",&a,&b);
    chang(a,b);
    printf("%d %d",a,b);
    return 0;
}

如果有不懂的,欢迎评论,我们一起讨论;

另外这里我把宏定义的一些解释链接到这:宏定义

 

0.0分

86 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

宏定义尾不加分号
2022-01-19 20:33:56
#include<stdio.h>
#define CHANGE(x,y) printf("%d %d",y,x)
int main()
{
	int x,y;
	scanf("%d %d",&x,&y);
	CHANGE(x,y);
	return 0;
 }
2021-12-06 18:58:38
#include<stdio.h>
void change(int b,int c)
{
    int temp;
    temp=b;
    b=c;
    c=temp;
    printf("%d %d",b,c);
}
int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    change(a,b);
}
2021-08-13 10:45:01
#include<stdio.h>
#define  E(a,b) b,a//宏定义:允许使用标识符代表一个字符串
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	printf("%d %d",E(a,b));
	return 0;
}
2021-05-09 10:11:23
change()后面的;多余了
2020-08-20 23:49:22
#include<stdio.h>

int main() {
	int m,n;
	scanf("%d%d",&m,&n);
	printf("%d %d",n,m);
}输出直接交换就行了,不用宏定义
2019-10-26 10:25:27
#include <stdio.h>
#define change(a,b) b,a
int main()
{
    int a=0;
    int b=0;
    scanf("%d%d",&a,&b);
    printf("%d %d",change(a,b));
    
    return 0;
}
2019-03-01 21:23:37
#define change(a,b) b,a
宏的定义就是 后面替换前面的,无条件替换
2019-03-01 21:22:27