gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 02:41:03 25 4
gpt4 key购买 nike

我想知道对多个文件指针进行 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 吗?

我很抱歉,因为这似乎是一个微不足道的问题,但我找不到像这样的空检查多个指针的任何内容。

提前致谢!

最佳答案

没有最好的方法来做到这一点。具有正确优化的编译器是唯一的解决方案。代码编译时switch或者if是一样的东西。

只有一个提示,如果要打开的文件数量很大,对于可读代码使用数组和循环在其上循环是一件好事。但是,如果您的目标是性能,那么循环并不是最好的方法,尤其是在要检查的元素数量很少的情况下。

关于c - NULL 检查多个文件指针的最佳/最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59429251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com