【问题标题】:The c.vim c/c++ plugin puts the return value of a function above the function, is that alright?c.vim c/c++ 插件把函数的返回值放在函数上面,可以吗?
【发布时间】:2012-02-20 23:42:13
【问题描述】:
void
foo()
{
}

这就是我得到的。

我最近才涉足 GNU 等领域,所以也许我太缺乏经验,但是...

我以前从未见过这种约定。 有什么关系?它会给编辑器带来一些好处吗?还是人类利益? 就像知道每个函数名称都从第 1 列开始?

编辑: 我确实发现一个网站提到这样做是“可以的”,但似乎这不是经常使用的约定。

猜作者只是更喜欢这种风格,让我意识到为什么这个问题一开始可能会被否决。

【问题讨论】:

  • 我以前见过这种风格,但我没用过。如果您的 vimrc 中有正确的行,则默认的 vim 设置包括代码格式和语法突出显示(尝试将 :set syntax on:set smartindent:set filetype on 添加到您的 vimrc),所以我不使用 c.vim。
  • @AdamMihalcin 好吧,似乎确实使用了这种风格,但显然不经常使用。谢谢。

标签: c++ c vim coding-style


【解决方案1】:

我曾与喜欢这种风格的同事一起工作,我不得不承认,通过grep -R ^foo . 查找函数的能力非常酷,但几乎所有增长到三个或更多源的程序文件最好与etagsgidcscope 一起导航(我喜欢这三者的组合),因此简单使用grep 的好处并不像以前那样引人注目一次。

【讨论】:

  • 在快速扫描文件时也更容易找到特定的函数,因为函数名称是从同一个地方开始的。
【解决方案2】:

我相信这种风格可以追溯到前 ansi C。 见过下面的 main 声明(我在 gnu 源代码中看到过这种风格)?

main(argc, argv)
int arc;
char *argv[];
{
    return 0;
}

因为 int 曾经是默认返回值,只有当您需要指定时才这样做,就像您在不同行上的示例一样。

【讨论】:

  • 啊,确实有道理,猜想这个插件当时是为了尽可能传统。
【解决方案3】:

C/C++ 编译器不关心额外的换行符,它只会像对待任何其他空格一样对待它,所以在语法上它很好(但预处理器确实关心,所以你不能在没有的情况下在宏中放置换行符逃离他们)

在风格上,我不太喜欢它,但它的支持者可能喜欢能够在文件中搜索以函数名开头的行。

【讨论】:

    【解决方案4】:

    当我得到一个看起来像这样的模板时,我要做的第一件事就是删除那些换行符,以使代码更易于管理。 bada 时常发生这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-16
      • 2015-08-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多