标签:ini break return arm file malloc src har 语句
1、作为一种防止宏错误展开的一种防御性写法。
相信很多人都知道,这里不展开了。
2、实现 goto 语句的功能,一次break就可以跳出到后续语句。
do {
if(...)
break;
...
}while(0)
// 后续语句
例如:
// https://gitee.com/openharmony/startup_init_lite/blob/master/src/init_read_cfg.c
static char* ReadFileToBuf()
{
char* buffer = NULL;
FILE* fd = NULL;
struct stat fileStat = {0};
do {
if (stat(INIT_CONFIGURATION_FILE, &fileStat) != 0 ||
fileStat.st_size <= 0 || fileStat.st_size > MAX_JSON_FILE_LEN) {
break;
}
fd = fopen(INIT_CONFIGURATION_FILE, "r");
if (fd == NULL) {
break;
}
buffer = (char*)malloc(fileStat.st_size + 1);
if (buffer == NULL) {
break;
}
if (fread(buffer, fileStat.st_size, 1, fd) != 1) {
free(buffer);
buffer = NULL;
break;
}
buffer[fileStat.st_size] = ‘\0‘;
} while (0);
if (fd != NULL) {
fclose(fd);
fd = NULL;
}
return buffer;
}
标签:ini break return arm file malloc src har 语句
原文地址:https://www.cnblogs.com/schips/p/13694634.html