Woshiluo’s Code Style

栏目: C++ · 发布时间: 4年前

内容简介:代码风格,这是基本上每个写代码的人都会遇到的问题,怎么写?不同的代码风格总会被冠上不同的优缺点一次次的适应与修改,最终每个人会形成自己的码风我决定在此写出自己的码风,以此记录

Code Style

代码风格,这是基本上每个写代码的人都会遇到的问题,怎么写?不同的代码风格总会被冠上不同的优缺点

一次次的适应与修改,最终每个人会形成自己的码风

我决定在此写出自己的码风,以此记录

Thanks

在我的码风形成过程中,以下 文章 / 文档 对作者本人造成了一定影响

未特殊说明 的情况下,本方法 同时 适用与 C/C++ HTML CSS PHP Node.JS

1 缩进

使用 Tab 进行缩进,特殊情况允许使用 软 Tab(即空格),否则推荐制表符

推荐缩进宽度为 4

2 括号

若出现 小括号 / 中括号 / 尖括号 中间有套超过一层运算的,则应当在两边添加空格( HTML 除外)

大括号不换行

对于函数类调用,小括号后面的大括号应接一格

在大括号出现后一般立即换行,除非内部语句少于等于 1

大括号如果换行,内部必须有缩进

我们在这里视 HTML 标签为大括号

我们视 <?php ?> 标签为一组大括号

PHP 中,本文视引号作为一种运算

括号本身也可视作运算

Example:

inline int Min( int a, int b ) { return a < b? a: b; }

int f(int x) {
    if( x == 1 || x == 2 )
        return 1;
    return f( x - 1 ) + f( x + 2 );
}
<p>Woshiluo's Code Style</p>

<div class="main">
    <h1>Woshiluo's Code Style</h1>
</div>

3 运算符号

普通运算符应当在左右两层添加括号

问号表达式整体左右添加空格,中间的 ? : 运算符仅在右边添加空格

逗号只在其后面添加空格

Example:

int f(int x) {
    return a[ ( (x + 2 - 3)  / 10 + 100 )  % mod ];
}

int gcd(int a, int b) { return b? gcd( b, a % b ): a; }

4 行长

每一行长度不应超过 70 – 80 字节,超过应当换行,对于函数换行,回车后添加一格缩进

int get_status( int id, int auth_id, int time, int last_time,
    int add_time )

5 变量 / 函数 命名

两个原则

  • 简洁易懂
  • 不容易变量名重复

避免使用题目出现之外的单字母名称,注意,对于 $f(x),g(x)$ 一类名称也是允许使用单字母名称的,但应当尽力避免

注意 $i,j,k$ 应当尽力 只在循环中 使用

推荐的命名法则

  • 不建议使用驼峰法
  1. 去除英文单词里的元音
  2. 取英文单词 3 / 5 个字母
  3. 如果单词比较短,那么直接使用原单词也是可以的
  4. 可以考虑采用 dis sum 一类的前缀修饰
  5. 不会英文单词的时候,可以使用汉语拼音替代,但 仅允许 在竞赛考场上出现

6 关于什么时候加大括号

在写程序的时候,不应当 省略 任何括号,写完时可以删除 只有一行if 的括号,循环的括号依旧不允许

删除大括号后,缩进 不减少

Example:

if(flag)
    ans *= 2;

for(int i = 1; i <= n; i++) {
    ans += sum[i];
}

6 特别语法

6.1 C++ inline / register 关键字

inline 关键字仅可以在小于 10 行 ,不包含递归及循环的函数中使用,可以不使用

拒绝使用 register

6.2 引用头文件

若无顺序要求,应当以长度为第一关键字,字典序为第二关键字,引用头文件

对于 C/C++ 先引用 C ,然后 C++,最后是其他的

#include <cstdio>
#include <cstring>

#include <vector>
#include <algorithm>

#include "tree.h"

6.3 PHP Array 函数

建议 Array 函数使用如下换行方案

<?php
    $a = array(
        "a" => a;
    )
?>

6.4 JavaScript 函数传递

$(document).ready(function(){
    $("p").click(function(){
        $(this).hide();
    });
});

7 End

一段优秀代码,应当是你半年后再次阅读,五分钟后就能明白这段代码在干什么

本文可能对竞赛场上不是那么的友好,可是算法竞赛上,通常思考的时间越大于代码的时间,且更加优良的码风可以减少调试难度,减少出错概率,这是一个天平,需要我们自己在一次次考试中找到平衡点

而在一般的代码中,特别是工程代码,优良的码风不仅仅对自己好,也对项目及其维护人员友善

所以代码风格并不仅仅是一种美观的产物,而是一种有实际意义,有效率的事件

我们值得为代码风格消耗时间


以上所述就是小编给大家介绍的《Woshiluo’s Code Style》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beautiful Code

Beautiful Code

Greg Wilson、Andy Oram / O'Reilly Media / 2007-7-6 / GBP 35.99

In this unique work, leading computer scientists discuss how they found unusual, carefully designed solutions to difficult problems. This book lets the reader look over the shoulder of major coding an......一起来看看 《Beautiful Code》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具