以下是一段json解析的代码,其中多次用cJSON_GetObjectItem(time, "set")函数作为判断条件那么编译器会不会自动优化这段代码?
还是提取后先存起来再使用效率高?
buf = cJSON_GetObjectItem(time, "set");
value=atoi(buf->valuestring);
有区别吗?也许编译器会自己优化
@dirtwillfly @m564522634 @xyz549040622
if (time != NULL)
{
if (cJSON_GetObjectItem(time, "set") != NULL &&
(atoi(cJSON_GetObjectItem(time, "set")->valuestring) < 0
|| atoi(cJSON_GetObjectItem(time, "set")->valuestring) > 99))
{
SET_TIME_VALUE = SET_TIME_VALUE;
SHENGYU_TIME_MIN = SHENGYU_TIME_MIN;
}
else if
(cJSON_GetObjectItem(time, "set") != NULL)
{
if (mode == 2 || mode == 3)
{
SET_TIME_VALUE = SET_TIME_VALUE;
SHENGYU_TIME_MIN = SHENGYU_TIME_MIN;
}
else
{
SET_TIME_VALUE = atoi(cJSON_GetObjectItem(time, "set")->valuestring);
R_FLAG.time_value = SET_TIME_VALUE;
SET_TIME_TEMP_VALUE = SET_TIME_VALUE;
SHENGYU_TIME_MIN = SET_TIME_VALUE;
SHENGYU_TIME_SEC = 0;
R_FLAG.time=1;
}
}
}
|