V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
marklrh
V2EX  ›  问与答

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

  •  
  •   marklrh · 2014-05-22 11:45:14 +08:00 · 4827 次点击
    这是一个创建于 3842 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如
    int main(){
    return 0;
    }

    还是
    int main()
    {
    return 0;
    }

    类似的,是习惯
    Node* root;

    还是
    Node *root;

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

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

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

    Node *root;
    // 这个比较下 Node *root, n; 和 Node* root, n; 两者的易读性就能理解了...
    xuyuanp
        3
    xuyuanp  
       2014-05-22 12:04:43 +08:00
    用go吧,不纠结
    msg7086
        4
    msg7086  
       2014-05-22 12:16:51 +08:00
    用ruby,不纠结。大括号只放单行,多行一律do/end
    mimzy
        5
    mimzy  
       2014-05-22 12:26:49 +08:00
    写法跟语言和 IDE 有关。 /t/21945 /t/103836
    skydiver
        6
    skydiver  
       2014-05-22 12:28:47 +08:00
    @allenforrest 如果按二楼的思路,你这个第二点好像反了吧
    allenforrest
        7
    allenforrest  
       2014-05-22 12:31:18 +08:00
    @skydiver 你可以去看看 Linux Kernel 代码
    tonghuashuai
        8
    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
        9
    isayme  
       2014-05-22 13:48:43 +08:00
    @allenforrest "去死吧, 异教徒!" 哈哈, 开个玩笑~

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

    @allenforrest 我想吐槽 linux 内核代码缩进是8个空格, 本意很好, 但确实不适合我们..
    nicai000
        10
    nicai000  
       2014-05-22 14:00:17 +08:00
    你们都别闹了, 可以嵌套的block例如if把大括号放一行, 不可以嵌套的例如C函数则另起一行, 四海皆准.
    Honwhy
        11
    Honwhy  
       2014-05-22 22:58:26 +08:00
    以前公司有个前辈和我说,不要计较美观
    另起一行写花括号,在打补丁(patch)的时候特别有用。
    xff1874
        12
    xff1874  
       2014-05-22 22:59:24 +08:00
    代码始终是让人读的,如果这个代码是自己写的,你可能很熟悉它,隔个几个月回来,看一眼就知道了。可是要是你读别人的代码呢。所以,我推荐大括号第二种写法。这样很清楚的表达了,这个block的作用范围。当然这个block里面的代码行数少看不出区别,但是如果中间有N行,并且里面还有block呢,你能很容易的判断每个block的范围么,同理推荐下面一种对指针的定义。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3114 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:10 · PVG 22:10 · LAX 06:10 · JFK 09:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.