在本文中,我们将讨论C语言中#define和#undef预处理程序之间的区别。
预处理器:
- 预处理程序是在编译之前执行的程序。
- 它仅注意到#开始的语句。
- #称为预处理器指令。
- 每个预处理指令必须位于其自己的行上。
- #后面的单词称为预处理器命令。
#定义:
#define指令定义了一个标识符和一个字符序列(一组字符),每次在源文件中遇到该标识符时,它将替换该标识符。
句法:
#define macro-name char-sequence.
The identifier is referred to as a macro name and replacement process as a macro replacement.
例子:
#define PI 3.14
Here. PI is the macro-name and 3.14 is the char-sequence.
程序1:
下面是说明#define用法的C程序:
C
// C program illustrating the use of
// #define
#include
#define PI 3.14
// Driver Code
int main()
{
int r = 4;
float a;
a = PI * r * r;
printf("area of circle is %f", a);
return 0;
}
C
// C program to find the product of
// two numbers using #define
#include
#define PRODUCT(a, b) a* b
// Driver Code
int main()
{
printf("product of a and b is "
"%d",
PRODUCT(3, 4));
return 0;
}
C
// C program to illustrate the use
// of #undef in a program
#include
#define PI 3.14
#undef PI
// Driver Code
int main()
{
int r = 6;
float a;
a = PI * r * r;
printf("area of circle is %f", a);
return 0;
}
输出:
area of circle is 50.240002
解释:
- 在此的示例PI是宏名称,字符序列是3.14。
- 程序运行时,编译器将首先检查#define命令,并将PI分配为3.14。
- 现在,在整个程序中,无论编译器在哪里看到PI字,它都将用3.14替换它。
程式2:
下面是使用#define的两个数字的C程序打印产品:
C
// C program to find the product of
// two numbers using #define
#include
#define PRODUCT(a, b) a* b
// Driver Code
int main()
{
printf("product of a and b is "
"%d",
PRODUCT(3, 4));
return 0;
}
输出:
product of a and b is 12
解释:
- 在此示例中,定义了一个宏名称作为乘积,并将两个自变量作为a和b传递,并将char序列作为这两个自变量的乘积给出。
- 当编译器在print语句中看到宏名称时,它将用a和b的乘积替换宏名称,并给出答案作为其乘积。
#undef:
#undef预处理程序指令用于未定义的宏。
句法:
#undef macro-name
程序3:
下面是C程序,用于说明程序中#undef的用法:
C
// C program to illustrate the use
// of #undef in a program
#include
#define PI 3.14
#undef PI
// Driver Code
int main()
{
int r = 6;
float a;
a = PI * r * r;
printf("area of circle is %f", a);
return 0;
}
输出:
说明:在此示例中,当使用#undef时,它将删除#define命令,并且该宏将变得未定义,并且编译器将显示错误。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。