我想知道是否将始终编译以下代码,以便没有非法的 NULL ptr 取消引用?
我担心的是编译器可能会在首先检查“b”是否为 NULL 之前检查 b->value。
typedef struct
{
int value;
} mystruct;
int func(mystruct * b)
{
if((NULL == b) || (b->value == 0))
{
return -1;
}
printf("value: %d\n", b->value);
}