51单片机c语言 #define语句解释
#defineSHUTDOWN_MASHINE()do{\Is_Power_Down=1;\PCON=0x02;\_nop_();_nop_();_nop_();_nop...
#define SHUTDOWN_MASHINE() do { \
Is_Power_Down = 1; \
PCON = 0x02; \
_nop_();_nop_();_nop_();_nop_(); \
} while (0);
这段语句是什么意思?是不是说把SHUTDOWN_MASHINE()定义(或等效为)
do {
Is_Power_Down = 1;
PCON = 0x02;
_nop_();_nop_();_nop_();_nop_();
} while (0);
为什么要加“ \”呢? 展开
Is_Power_Down = 1; \
PCON = 0x02; \
_nop_();_nop_();_nop_();_nop_(); \
} while (0);
这段语句是什么意思?是不是说把SHUTDOWN_MASHINE()定义(或等效为)
do {
Is_Power_Down = 1;
PCON = 0x02;
_nop_();_nop_();_nop_();_nop_();
} while (0);
为什么要加“ \”呢? 展开
3个回答
展开全部
问题 1 : #define 的作用, 这是一个预处理语句.
何为预处理? 是指编译器(也开发环境)在编译之前的处理.
怎么处理呢? 其它就是字符串替换
例: #define PI 3.14
void main()
{
float area=0;
int radius=2;
area=PI*(radius*radius);
printf("%f",area);
}
预处理之后
void main()
{
float area=0;
int radius=2;
area=3.14*(radius*radius);
printf("%f",area);
}
其实就是字符串替换,所以 #define PI 3.14 不能加 ";" 不然变成 area=3.14;*(radius*radius);
这样的话肯定出错.
问题2: "\" 的作用,就是上下行的连接符,有可能是一行太长了,也有可以是为了好看,所有写成多行
例:
#define PI 3.\
14
void _tmain()
{
float area=0;
int radius=2;
area=PI*(radius*radius);
printf("%f",area);
}
写成这样,也是可以的.
何为预处理? 是指编译器(也开发环境)在编译之前的处理.
怎么处理呢? 其它就是字符串替换
例: #define PI 3.14
void main()
{
float area=0;
int radius=2;
area=PI*(radius*radius);
printf("%f",area);
}
预处理之后
void main()
{
float area=0;
int radius=2;
area=3.14*(radius*radius);
printf("%f",area);
}
其实就是字符串替换,所以 #define PI 3.14 不能加 ";" 不然变成 area=3.14;*(radius*radius);
这样的话肯定出错.
问题2: "\" 的作用,就是上下行的连接符,有可能是一行太长了,也有可以是为了好看,所有写成多行
例:
#define PI 3.\
14
void _tmain()
{
float area=0;
int radius=2;
area=PI*(radius*radius);
printf("%f",area);
}
写成这样,也是可以的.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询