最佳/最快的NULL方式检查多个文件指针?

问题描述 投票:2回答:1

我想知道哪种最好和/或最快的方法来NULL检查多个文件指针并排除'坏'(NULL)指针?可以通过switch语句实现吗?

我的“正常/基本”方法是:

FILE *fp1, *fp2, *fp3;

fp1 = fopen(foo, bar);
/* etc.. */

if (!fp1) 
    /* do something */
    return 1;
if (!fp2) 
    return 2;

... 

..但是这种方法似乎太长了,特别是如果要检查的指针太多的话。有一个技巧可以更方便地执行此操作吗?

换句话说(或代码),类似这样:

if (!fp1 || !fp2 || !fp3) {
    /* one of the pointers is NULL, let's *somehow* check which one it is */
} else {
    /* everything OK */
} 

我是一个初学者,我正在考虑使用switch语句。更具体地说,我一直在想(再次)将文件指针与NULL进行比较,但是我无法弄清楚如何编写这样的代码,因为switch语句中使用的表达式必须是整数,但另一方面,NULL不等于0吗?我很抱歉,因为这似乎是一个微不足道的问题,但是我在像这样的空检查

multiple

指针上找不到任何东西。 谢谢!

我想知道哪种最好和/或最快的方法来NULL检查多个文件指针并排除'坏'(NULL)指针?可以通过switch语句实现吗?我的“正常/基本” ...

c if-statement switch-statement null-check
1个回答
0
投票
没有最佳方法。具有正确优化的编译器是唯一的解决方案。编译代码时切换或if是否相同。
© www.soinside.com 2019 - 2024. All rights reserved.