
知识拓展:
C中的预编译宏定义: 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理.
(1)程序说明:利用带参数的宏,来实现求两个数最大值最小值的方法
(2)实验代码:
#include
/*
程序说明:利用带参数的宏,来实现求两个数最大值最小值的方法
*/
#define MAX(x,y) // 请学生自己实现
#define MIN(x,y) // 请学生自己实现
int main()
{
int a,b;
printf("please input two nums:\n");
scanf("%d %d",&a,&b);
printf("the max between %d and %d is %d\n",a,b,MAX(a,b));
printf("the min between %d and %d is %d",a,b,MIN(a,b));
return 0;
}
2.defineMultiply.c 利用宏定义来进行乘运算
(1)程序说明:从控制台输入两个整数,求他们的乘积,利用带参的宏来实现编程
(2)实验代码:
#include
/*
程序说明:从控制台输入两个整数,求他们的乘积,利用带参的宏来实现编程
*/
#define multiply(a,b)
int main()
{
int a,b;
printf("please input two nums:\n");
scanf("%d %d",&a,&b);
printf("a * b = %d\n",multiply(a,b));
return 0;
}
3.defineSelect.c 利用宏定义来判断数组元素的奇偶
(1)程序说明:1、定义宏isOdd(a) 来判断一个数字是不是奇数
2、定义宏getLength(array)来计算数组长度
3、在宏中,可以使用两个#将两个符号连接成一个符号,请学生利用这个特性, 来定义宏select(NAME),以此来选择使用F_odd 还是F_even
(2)实验代码:
#include
/*
程序说明:1、定义宏isOdd(a) 来判断一个数字是不是奇数
2、定义宏getLength(array)来计算数组长度
3、在宏中,可以使用两个#将两个符号连接成一个符号,请学生利用这个特性,来定义宏
select(NAME),以此来选择使用F_odd 还是F_even
*/
#define F_odd printf("this is odd number \r\n")
#define F_even printf("this is even number \r\n")
/*
请学生完成下列的宏定义。
*/
#define isOdd(a)
#define getLength(array)
#define select(NAME)
int main()
{
int array[] = {20,23,10,23,40,38,67,29,30,40};
int length = getLength(array);
for(int i = 0 ; i<length;i++)
{
printf("array[%d] = %d ",i,array[i]);
if(isOdd(array[i]))
select(odd);
else
{
select(even);
}
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)