如何检查单行认为没有定义一个前处理器宏
How to check in a single line that none of the pre-processor macros are defined?
如果定义了至少一个宏,则很容易检查一行:
#if defined(A) || defined(B) || defined(C)
// do something
#endif
还要检查至少一个宏未定义:
#if !defined(A) || !defined(B) || !defined(C)
// do something
#endif
问题:如何检查一条线上没有定义宏的一行?
我可以在三行中使用IFNDEF进行以下操作:
#ifndef A
#ifndef B
#ifndef C
// do something
#endif
#endif
#endif
但是如何将三个IFNDEF加入一行?
模拟嵌套的#ifndef
'S:
#if !defined(A) && !defined(B) && !defined(C)
// do something
#endif
这检查没有定义。您说您要"至少一个未定义",但是您的示例涵盖了||
s。
嵌套的 #ifndef
可以在同一行上加入&&
:
#if !defined(A) && !defined(B) && !defined(C)
#endif
问题:如何检查一条没有定义宏的单行?
- 检查是否定义了一个宏:
#if defined A
。 - 检查是否未定义一个宏:
#if !defined A
。"如果未定义"。 - 检查是否未定义几个宏:
#if !defined A && !defined B && !defined C
。
"如果未定义A并且未定义B,则未定义C"
常识通常会使您在布尔代数方面很远。为了找出更复杂的情况的布尔方程,请定义真相表。示例:
0 = false(未定义)1 = true(定义)
A B C Output
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
相关文章:
- 预处理器:插入结构名称中的前一个行号
- 如何获取一个数字的前3位
- 在多个核心中处理一个HTTP请求
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 模板函数如何处理可能共享一个交集的多个类型名称?
- 是否可以通过每次在内存中仅保存一个平铺来处理完整的平铺 tiff 图像?
- 我有一个预处理的 C/C++ 源文件 (cacti.i).如何从这个 .i 文件生成可执行二进制文件,以便我可以像 ./
- 如何检查单行认为没有定义一个前处理器宏
- QUdpsocket在处理前一个数据报时丢失数据报
- (c++)如何制作一个可以处理不同类型和数量参数的函数
- 一个用于处理字符* 和 wchar_t* 的函数
- 每当我尝试初始化Employer对象时,我的程序都会给出一个未处理的异常错误
- 如何编写一个可以处理对象或指针函数调用的模板函数
- 用c++一次一个地处理每个文本文件中的值
- 有没有一个批处理框架可以用于c++应用程序?
- 在调用前一个处理程序的完成处理程序之前异步发送数据是否有效
- 强制一个对象处理输入的信号
- 用MFC创建一个WM_USER处理程序
- 变量在最后一个关联处理程序之后
- OpenCV addweighted函数在第4次循环后给出一个未处理的异常