You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++调用void类型函数后继续执行前是否需添加执行完成校验?

问题解答

核心结论

不需要额外判断valmis == 1来保证Realtest()执行完成后再走后续逻辑,valmis相关的两行代码都是冗余可删除的。

原因说明

C++默认的普通函数调用是同步阻塞执行的:当你调用Realtest()时,程序会暂停Main()函数的后续执行流程,直到Realtest()内部所有代码完全运行结束,才会继续执行Realtest()调用后的下一行代码。你当前的写法里,if (valmis == 1)这行本身就已经是Realtest()执行完毕后才会运行的逻辑,所以这个判断没有任何作用。

适用特殊场景

只有当你在Realtest()中开启了新线程、用了异步逻辑让Realtest()本身提前返回,实际耗时任务在后台线程运行时,才需要通过状态变量、条件变量等机制判断异步任务是否执行完成。你当前的普通同步调用场景完全不需要这类判断。

内容的提问来源于stack exchange,提问作者Dandeson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:21:04