c - return(NULL) 中多余括号的目的是什么

标签 c

我在某个 C 程序中看到了以下代码片段:

char *x;

if (s == NULL)
    return(NULL);
if ((x = strdup(s)))
    return x;

return(NULL) 中多余的括号有什么用?

最佳答案

从下面的if语句来看,作者就是喜欢写括号。

理论上,由于 NULL 是一个预处理器宏,您可以将其定义为 包含在括号中的内容,因此可能有不同的行为,具体取决于它是哪个表达式部分原因是运算符优先规则——在这种情况下,将其包裹在额外的括号中会“更安全”。

实际上,这不会发生。即使想到这样的场景也会让我感到肮脏,所以我无法想象真正做到这一点的人的命运会怎样。

关于c - return(NULL) 中多余括号的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914738/

相关文章:

c - 为什么这段代码给我一个段错误?

c - memcmp C 实现 - 任何与此有关的逻辑错误

c - C 递归子程序中释放内存

计算读取操作返回的字节数

c - 使用数组和函数求平均值

C 二维数组

无法将 C 程序转换为 Ruby

c - 如何用C编写 'backspace'程序?

c - C 程序中 switch 语句的意外输出

javascript - JQuery AJAX + C CGI