这个宏是什么意思#define st(x) do { x } while (__LINE__ == -1)
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/30 23:34:34
这个宏是什么意思#define st(x) do { x } while (__LINE__ == -1)
zstack中进入退出临界区的宏定义是
#define HAL_ENTER_CRITICAL_SECTION(x) st( x = EA; HAL_DISABLE_INTERRUPTS(); )
#define HAL_EXIT_CRITICAL_SECTION(x) st( EA = x; )
其中st(x)应作何解释?
#define st(x) do { x } while (__LINE__ == -1)
zstack中进入退出临界区的宏定义是
#define HAL_ENTER_CRITICAL_SECTION(x) st( x = EA; HAL_DISABLE_INTERRUPTS(); )
#define HAL_EXIT_CRITICAL_SECTION(x) st( EA = x; )
其中st(x)应作何解释?
#define st(x) do { x } while (__LINE__ == -1)
#define st(x) do { x } while (__LINE__ == -1)
1, __LINE__ 是个宏,它代表当前代码在源文件的行号,它是大于0的,所以__LINE__ == -1 等同于0,化简为:
#define st(x) do { x } while (0)
2,do {} while (0)通常用于宏中, 为的是避免如下情况:
#define st(x) x
那么我们在调用 if (0) st(a = b; b = c;) 时会被解释成
if(0)
a = b;
b = c;
可见 if 只对a = b;起作用.
看明白了吗? 不明白的话继续问
1, __LINE__ 是个宏,它代表当前代码在源文件的行号,它是大于0的,所以__LINE__ == -1 等同于0,化简为:
#define st(x) do { x } while (0)
2,do {} while (0)通常用于宏中, 为的是避免如下情况:
#define st(x) x
那么我们在调用 if (0) st(a = b; b = c;) 时会被解释成
if(0)
a = b;
b = c;
可见 if 只对a = b;起作用.
看明白了吗? 不明白的话继续问
这个宏是什么意思#define st(x) do { x } while (__LINE__ == -1)
x=-1;do{;}while(x++);
#define SETBIT(x,y) (x|=(1
x=10; while (x) x-- 中while(x)是什么意思?
#define FOR while(x--) int x=3,y=0; FOR {y++; } printf("x=%d
以下程序段() int x=-1 do { x=x*x; }while(!x);
#include void main() {int x=-1; do {x=x*x;} while(!x--); pri
循环提执行的次数是:x=-1:do{x=x*x;} while(!x);
#define X 3 #define Y X*2 #undef X #define X 2 int z=Y; z 的值
c语言中 执行x=-1;do{x=x*x;}while(!x);中的‘’!x‘’是啥意思
int x=-1; do {x=x*x;}while(!x); 为什么循环一次,每一步的详解,特别是while(!x)是
c语言while(x++!=(y-=1))是什么意思