引用 金星凌日:这种问题目前可能没有什么好办法解决,只能强调编程规范和单元测试……
这些我都知道,可能是我没有表达清楚。
我的意思是,使用了这种协程,这个函数就会变成不可复制的资源。而C语言中没有办法阻止这种错误用法,除非人工检查。或许使用断言会有一定帮助,但这并不能解决所有问题。
用C/C++写过大程序的人都知道,在一个地方mallco/new后如果在多个分支realloc/delete,很容易就出现内存泄露并且难以查找;在ucos里也一样,如果在某个地方你觉得很重要,加了个OS_ENTER_CRITICAL(),然后在几个条件分支里遗漏了一个OS_EXIT_CRITICAL(),结果就是不知道什么时候系统就会突然挂了(还很难重现),也是很难找出原因