使用goto语句的坑:
如果这里面没有加return,那么无论是否执行goto,cleanup都会执行,所以使用Goto的时候需要注意这点
#include <stdio.h>
void processNumbers(int num) {
if (num < 0) {
printf("Error: Number is negative.\n");
goto cleanup; // 如果数字是负数,则跳转到清理部分
}
printf("Processing number: %d\n", num);
if (num == 0) {
printf("Warning: Number is zero, nothing to process.\n");
goto cleanup; // 如果数字是0,则跳转到清理部分
}
// 假设我们有一些复杂的处理过程
// ...
printf("Number processed successfully.\n");
return ;//如果这里面没有加return,那么无论是否执行goto,cleanup都会执行,所以使用Goto的时候需要注意这点
cleanup:
// 清理部分,释放资源或者打印结束信息
printf("Cleanup done.\n");
}
int main() {
processNumbers(10);
processNumbers(-1);
processNumbers(0);
return 0;
}