有人告诉我,当你想多次执行同一段代码时,函数非常有用......但是当处理while循环时,函数是必需的。我不确定是否要在while循环中调用函数来进行基于文本的冒险游戏,我必须为学校制作。毕竟为什么我会在循环中需要函数,直到它们退出循环。我的老师会因为有不必要的功能而让我失望吗?
一方面不太好:如何在函数中更改主例程中的变量...我想从num_water变量中减去一个(global num_water - = 1),但是它表示无效语法突出显示等号 -
答案 0 :(得分:0)
威廉 -
考虑一个简单的基于C的状态机,其中一个函数运行状态机,并且基于当前状态将调度到任意数量的函数。状态机永远运行,如
bool done=0;
while(done == no)
{
switch(state)
{
case SOME_STATE: do_thing_for_this_state(); break;
case OTHER_STATE: ...
}
}
while循环在概念上没有区别:
while (done == no)
{
do things
}
如果"做事情"块很简单,代码可以很容易地读取和理解,然后将它留在while块中就可以了。
如果"做事情"块很复杂,问问自己:这段代码是否易于阅读?它是否更有意义,如果它被分成块,每个块都是一个描述性命名的函数?如果是这样,你就可以在while循环中调用函数。
另外,如果对#"做事情有意义的话。阻止在别处重复使用,那么它也是一个独立的功能。
你心中最后的考虑应该是表现。如果您正在为嵌入式处理器,DSP,低水平电信或发射太空飞行器编写关键任务代码,那么,是的。执行函数调用需要少量的CPU周期。对于编写的所有代码的极少量,存在性能方面的考虑。
我希望有所帮助。