任何时候都应初始化变量

指针不初始化,直接释放会导致内存错误,这个都很明白,变量的初始化,就没有那么的挑剔了,有时候初始化,有时候不。原因是指针若不初始化,基本上就玩完,变量很大程度上不会出问题。

不过它隐藏的危险比指针更可怕:会导致程序莫名其妙的怪异行为。

考虑如下代码:

bool all_sent_out;
if(!mfarm->SendMessage(&all_sent_out)){
    exit(-1);
}

由于SendMessage会修改all_send_out的值,所以这个代码不初始化all_sent_out没有问题,一点点问题都没有。

问题在于,另外一个人,或者是数天之后的自己,突然发现有很多Messgae需要send,所以用循环来调用:

bool all_sent_out;
while(!all_sent_out){
    if(!mfarm->SendMessage(&all_sent_out)){
        exit(-1);
    }
}

发现有时候发送,有时候不发送,因为这个时候all_sent_out的值没有被初始化!

应该随时都要初始化:

bool all_sent_out = false;
while(!all_sent_out){
    if(!mfarm->SendMessage(&all_sent_out)){
        exit(-1);
    }
}


你可能感兴趣的:(任何时候都应初始化变量)