综上,在 {}、do{...}while(0) 和 ({}) 这三种函数宏的封装方式之中,应尽可能不使用 {},考虑兼容性一般选择使用 do{...}while(0),当需要函数宏返回时可以考虑使用 ({}) 或直接定义函数。
1. 提高代码复用性:封装后的函数可以在不同的程序或项目中重复使用,避免了代码的冗余。2. 增强代码可读性:通过函数名和参数设计,可以让函数的功能一目了然,便于他人理解和协作。3. 提升代码维护性:封装后的函数,其内部实现可以独立修改,不影响外部调用,降低了维护成本。三、如何封装函数1. 确定函数功能:首先明确...
cond_timeout() 函数没有像小明的预期一样工作的原因很简单:cond 参数只是 cond_timeout() 函数被调用的时候的状态,之后线程函数 thread() 无论如何修改 ready,也不会影响到 cont_timeout() 函数里的 cond。 那上面的“超时”C语言代码就不能封装,想用时,就只能一行一行写了?当然不是,将“超时”代...