【发布时间】:2017-04-11 20:58:27
【问题描述】:
想想用 C/C++ 编写的这段代码:
bool cond = true;
while(cond){
std::cout << "cond is currently true!";
}
是否可以创建一个可以这样调用的函数?
myFunction(some_parameters_here){
//Code to execute, maybe use it for callbacks
myOtherFunction();
anotherFunction();
}
我知道你可以使用函数指针和 lambda 函数,但我想知道你是否可以。我很确定有办法做到这一点,因为 while() 将如何存在?
【问题讨论】:
-
while不是函数,而是语言的一部分。您无法使用相同的语法创建函数,但您可以使用 lambda 执行类似的操作,如您所说。 -
我不确定你在说什么。您是指行为类似于
while的函数吗?通常你会做while (myFunction(args))。较新版本的 C++ 有lambda,但我不确定这是否值得沿着这条路走下去。它可以编写非常复杂的代码。 -
你也许可以用宏来伪造它。取决于你想让
myFunction做什么。 -
goto? (鸭子) -
@FrançoisAndrieux 通过创造性地使用宏和
jmp(又名goto),您可以创建任何您想要的内容。这是一个毫无意义的练习,我同意,而且你当然不能只是随机地向语言中添加新结构。