c - 在 if 语句中分配 fopen 的结果

标签 c if-statement variable-assignment

我目前正在学习 C,想知道以下两段代码是否执行不同,或者这是否只是一种风格。

查看一些来源,它们具有以下代码:

...
FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }
...

虽然我的教授在他的笔记中有以下代码:

...
FILE * pFile
if ((pFile = fopen("myfile.txt","r")) == NULL)
{ some code }
...

只是想知道这是否仅仅是不同程序员的风格偏好,或者将 return/set 行放在 if statmeent 中是否有优势。

最佳答案

没有区别。更有经验的程序员有时会使用第二种形式,只是为了节省一行,但它们本质上是相同的。第二个倾向于更“UNIX-y”,其中大多数函数调用在继续之前检查错误(而不是成功)。

关于c - 在 if 语句中分配 fopen 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376013/

相关文章:

java - if 语句中的正则表达式 ÅÄÖ

SQL SELECT If (a ="") then 更改 b 值

python - 简单的赋值运算符在 Python 中变得复杂

c - 将我的 float 限制为只有 3 位数字

c - 无法弄清楚 C 中 while/if 循环的逻辑

c - 程序输出重定向的问题

c# - 抛出异常时是否应该省略 else 语句?

c++ - 通过引用分配对象,无需复制

python - 重新分配从 Python 中的函数返回的值

c - 为什么我得到 "Header file missing"(出错)?