哪个更有效率
if(!var_name)
Run Code Online (Sandbox Code Playgroud)
要么
if(var_name == NULL)
Run Code Online (Sandbox Code Playgroud)
Pau*_*son 16
两者都将编译为相同的代码.您选择使用哪个应该取决于哪个最具可读性.
这个版本:
if(var_name == NULL)
Run Code Online (Sandbox Code Playgroud)
应该只有当使用var_name一个指针,否则你会迷惑人谁在未来的读取你的代码.如果你在非指针上使用它,一些编译器可能会抱怨.
这个:
if(!var_name)
Run Code Online (Sandbox Code Playgroud)
应该在逻辑上var_name作为布尔值(true/false)处理的情况下使用.这可以包括何时var_name是指针,因为NULL是"假"或未定义指针的值.
如果var_name是整数,那么我会选择第三个选项:
if(var_name == 0)
Run Code Online (Sandbox Code Playgroud)
因为我发现它更清楚地表达了意图.