c.vim c/c++ 插件将函数的返回值放在函数上方,没关系
The c.vim c/c++ plugin puts the return value of a function above the function, is that alright?
void
foo()
{
}
这就是我得到的。
我最近才冒险进入GNU等水域,所以也许我太缺乏经验了,但是......
我以前从未见过这个公约。这是怎么回事?它是否提供了一些与编辑器相关的好处?还是人类利益?就像知道每个函数名称从第 1 列开始一样?
编辑:我确实发现一个网站提到这样做是"可以的",但似乎这不是经常使用的约定。
猜作者只是喜欢这种风格,让我意识到为什么这个问题一开始可能会被否决。
我曾与喜欢这种风格的同事一起工作,我不得不承认,通过grep -R ^foo .
找到函数的能力非常酷,但几乎任何增长到三个或更多源文件的程序最好与etags
、gid
或cscope
一起导航(我喜欢这三者的组合(, 因此,简单grep
使用的好处并不像过去那样引人注目。
我相信
这种风格可以追溯到pre-ansi C。有没有看到以下 main 声明(我已经在 gnu 源代码中使用过这种样式(?
main(argc, argv)
int arc;
char *argv[];
{
return 0;
}
由于int
曾经是默认返回值,因此仅当您需要指定时才这样做,例如不同行上的示例。
C/C++ 编译器不关心额外的换行符,它只会像对待任何其他空格一样对待它,所以语法上很好(但预处理器确实关心,所以你不能在不转义宏的情况下将换行符放在宏的中间(
从风格上讲,我不太喜欢它,但它的支持者可能喜欢能够在文件中搜索以函数名称开头的行。
当我得到一个看起来像这样的模板时,我要做的第一件事就是删除这些换行符,以使代码更易于管理。它一直在巴达身上发生。
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- 如何在c++中为模板函数实例创建快捷方式
- c.vim c/c++ 插件将函数的返回值放在函数上方,没关系