关于#ifndef

2019-07-20 20:16发布


全局变量   i;
void a_hanshu(void)
{
#ifdef overtime
i++;
if(i>一定值)
#undef overtime
#endif
程序
.
.
.
}


void b_hanshu(void)
{
#ifndef overtime
#define overtime
#endif
程序
.
.
.
}

我的意思是:当使用b函数的时候,定义一个超时标志。a函数是个中断,每中断一次就对超时标志i进行操作,当大于预定的超时i值时,解除定义。这能这么用吗?我编译的时候没报错。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Da Wen
1楼-- · 2019-07-20 22:35
#ifndef是预处理中条件编译,这样应该不会有作用。为什么不直接把overtime作为flag呢?
zhoujianwen
2楼-- · 2019-07-20 22:39
 精彩回答 2  元偷偷看……
特朗姆斯
3楼-- · 2019-07-21 03:32
我认为不能这么做。

#ifndef #endif里面的程序是在编译前就决定是否要编译进你的程序里面。

实际程序运行的过程中#,ifnde和#endif已经不存在了

一周热门 更多>