首页 > 其他 > 详细

关于宏替换

时间:2020-03-23 21:06:54      阅读:81      评论:0      收藏:0      [点我收藏+]
#define N 3
#define Y(n) ((N+1)*n)

z=2*(N+Y(5+1));
z = 2*(N + (N+1)*5+1);
z = 2*(3 + 4*5+1);
z = 48

上面是一个超级常见的题目

另一种:

#define PI 3.14;

int main()
{
    double r = 10, s = 0;
    s = r * r * PI;
    s = PI * r * r;
    // s = 3.14; * r * r;
    printf("%f \n",s);
    return 0;
}

在使用#define时  如  #define  PI  3.14     最好不要写成 #define  PI   3.14;

这样程序在预编译的时候 进行宏替换  会将PI 直接替换成 3.14;

s=r*r*PI; 时会替换成 s=r*r*3.14;;程序运行时只是产生了空语句,不进行语法报错,

而  s=PI*r*r; 时 会替换成s=3.14;*r*r;  程序报错

关于宏替换

原文:https://www.cnblogs.com/xiaokang01/p/12554981.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!