【发布时间】:2009-12-17 05:15:43
【问题描述】:
大多数人都使用这样的指针...
if ( p != NULL ) {
DoWhateverWithP();
}
但是,如果指针由于某种原因为空,则不会调用该函数。
我的问题是,不检查 NULL 是否更有益?显然,在安全关键系统上,这不是一个选项,但是如果程序在没有它的情况下仍然可以运行,那么您的程序在荣耀中崩溃比没有被调用的函数更明显。
关于第一个问题,你在使用指针之前总是检查 NULL 吗?
其次,假设您有一个将指针作为参数的函数,并且您在整个程序的多个指针上多次使用此函数。您是否发现在函数中测试 NULL 更有利(好处是您不必到处测试 NULL),或者在调用函数之前在指针上测试(好处是调用函数没有开销)?
【问题讨论】:
-
大多数人在过马路之前都会环顾四周,看看他们是否会被来车撞到。但这并不是绝对必要的,您只需过马路就可以知道您是否会被汽车撞到。 :-)
-
@Franci:大多数人都会检查汽车,当汽车在那里时,等待。许多程序会检查汽车,如果有汽车,就跳到下一个斑马线。
-
我希望尽可能通过引用传递来避免这个问题。
-
@Steve 和其他人。显然这是理想的,但并不总是一种选择。