无聊的调查,大家习惯把函数的开头的括号放在函数名末尾还是另起一行?

2014-05-22 11:45:14 +08:00
 marklrh
比如
int main(){
return 0;
}

还是
int main()
{
return 0;
}

类似的,是习惯
Node* root;

还是
Node *root;

如果偏向某种选择且认为有好处的话,能和大家分享下么?
4855 次点击
所在节点    问与答
12 条回复
allenforrest
2014-05-22 11:51:11 +08:00
和你开发的语言和平台的风格有关:
1、如果是 Java,都是括号跟随在行尾,从不另起一行。
2、如果是 C/C++,如果是 Linux 开发,也是括号跟随在行尾,如果是其他平台,一般是另起一行。

指针的 * 号,比较多的是跟随在类型后面,而不是跟随在变量名前面。

我说的这些不是标准,只是我看到过的一些习惯,我自己也这样。
isayme
2014-05-22 11:56:48 +08:00
分别是:
int main()
{
// C的风格是另起一行, 清晰明了.
// 最近学的 Javascript 推荐大括号不另起一行, 应该是考虑到 Javascript 有自动添加分号机制.
}

Node *root;
// 这个比较下 Node *root, n; 和 Node* root, n; 两者的易读性就能理解了...
xuyuanp
2014-05-22 12:04:43 +08:00
用go吧,不纠结
msg7086
2014-05-22 12:16:51 +08:00
用ruby,不纠结。大括号只放单行,多行一律do/end
mimzy
2014-05-22 12:26:49 +08:00
写法跟语言和 IDE 有关。 /t/21945 /t/103836
skydiver
2014-05-22 12:28:47 +08:00
@allenforrest 如果按二楼的思路,你这个第二点好像反了吧
allenforrest
2014-05-22 12:31:18 +08:00
@skydiver 你可以去看看 Linux Kernel 代码
tonghuashuai
2014-05-22 12:31:24 +08:00
貌似有个字的规范,比如:
写 java 时:
int Main(){
return 0;
}

写 C# 时:
int main()
{
return 0;
}

写 Python 时:
def main():
return 0
没有括号好爽
isayme
2014-05-22 13:48:43 +08:00
@allenforrest "去死吧, 异教徒!" 哈哈, 开个玩笑~

@skydiver 代码风格这种东西真不好说.. 个人有个人的喜好...

@allenforrest 我想吐槽 linux 内核代码缩进是8个空格, 本意很好, 但确实不适合我们..
nicai000
2014-05-22 14:00:17 +08:00
你们都别闹了, 可以嵌套的block例如if把大括号放一行, 不可以嵌套的例如C函数则另起一行, 四海皆准.
Honwhy
2014-05-22 22:58:26 +08:00
以前公司有个前辈和我说,不要计较美观
另起一行写花括号,在打补丁(patch)的时候特别有用。
xff1874
2014-05-22 22:59:24 +08:00
代码始终是让人读的,如果这个代码是自己写的,你可能很熟悉它,隔个几个月回来,看一眼就知道了。可是要是你读别人的代码呢。所以,我推荐大括号第二种写法。这样很清楚的表达了,这个block的作用范围。当然这个block里面的代码行数少看不出区别,但是如果中间有N行,并且里面还有block呢,你能很容易的判断每个block的范围么,同理推荐下面一种对指针的定义。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/113726

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX