c.vim c/c++ 插件将函数的返回值放在函数上方,没关系

The c.vim c/c++ plugin puts the return value of a function above the function, is that alright?

本文关键字:函数 没关系 vim c++ 插件 返回值      更新时间:2023-10-16
void
foo()
{
}

这就是我得到的。

最近才冒险进入GNU等水域,所以也许我太缺乏经验了,但是......

我以前从未见过这个公约。这是怎么回事?它是否提供了一些与编辑器相关的好处?还是人类利益?就像知道每个函数名称从第 1 列开始一样?

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

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

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

我相信

这种风格可以追溯到pre-ansi C。有没有看到以下 main 声明(我已经在 gnu 源代码中使用过这种样式(?

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

由于int曾经是默认返回值,因此仅当您需要指定时才这样做,例如不同行上的示例。

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

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

当我得到一个看起来像这样的模板时,我要做的第一件事就是删除这些换行符,以使代码更易于管理。它一直在巴达身上发生。