我想使用条件语句作为表达式,如下图所示,如何制作它?
0, (do {a++;} while (a > 100););
编辑,我想这样做的原因是我想为现有的表达式添加条件语句以进行调试,现有的表达式位于头文件中并包含在许多源文件中。例如,我想在前一个表达式达到某个特殊值时编写一些调试消息。
答案 0 :(得分:4)
您只能在标准C ++中的表达式中包含do-while
语句(有一个特定于GCC的扩展http://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html)。但是你真正想要实现的目标是什么? - 我们或许可以找到一个优雅的替代品......
在C ++ 0x中,你可以接近,等等......
#include <iostream>
int main()
{
int a = 10;
std::cout << (([&]() -> int { do { a--; } while (a > 10); return a; })()) << '\n';
}
答案 1 :(得分:3)
只需将其放入inline
函数即可。这适用于C ++和C99。如果您有特殊的事情应该在调用者的位置进行评估,请将调用包装到一个宏中,该宏完全执行您需要的评估。
答案 2 :(得分:2)
我想要这样做的原因是我想在现有表达式中添加条件语句以进行调试,现有表达式位于头文件中并包含在许多源文件中。例如,我想在前一个表达式达到某个特殊值时编写一些调试消息。
使用功能。如果要在标题中定义它,请将其标记为内联。