我在某个 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/