在ANSIC代码中,我经常可以看到对单个返回值进行圆括号排序.

就像这样:-

int foo(int x) {
  if (x)
    return (-1);
  else
    return (0);
}

在这些情况下,为什么在返回值周围使用()呢?有什么 idea 吗?我看不出有什么理由.

推荐答案

真的没有什么原因.这只是个陈旧的习俗.

为了节省空间,程序员通常会在返回行而不是在自己的行中进行最后的计算,Paren确保在那里更容易看到返回的是单个语句,如下所示:

return (x+i*2);

而不是

int y = x+i*2;
return y;

插入语成了一种习惯,而且一直存在.

C++相关问答推荐

Zig将std.os.argv转换为C类型argv

如何将不同长度的位转换成字节数组?

Tiva TM4C123GXL的I2C通信

C编译器是否遵循restrict的正式定义?

ARM64 ASIMD固有的加载uint8_t* 到uint16x8(x3)?

在C语言中,是否可以使枚举数向后计数?

使用TCL C API导航到列表中的元素

C语言中MPI发送接收字符串时出现的分段错误

我在C中运行和调试时得到了不同的输出

递归打印二维数组(C编程)

Go和C中的数据 struct 对齐差异

使用Open62541向OPCUA服务器发送读请求时内存泄漏

强制GCC始终加载常量(即只读),即使启用了优化

为什么GCC不能在 struct 初始值设定项中以sizeof作为条件的三进制中处理复合文字的编译时求值?

memcmp 是否保证按顺序比较字节?

在C中定义函数指针?

使用共享变量同步多线程 C 中的函数

cs50拼写器分配中的无限循环

使用邻接表创建图

为什么需要struct in_addr