1. 在大括号嵌套语法中, 最好是左右(前后) 大括号单独占一行, 这样的嵌套关系最清晰

    也就是说, c/c++的风格是最清晰的. 而java php将 左大括号放在上一行的末尾, 稍次一点.

    不过在if while switch等条件后, 紧跟大括号是常用的习惯, 而且 结尾大括号跟 这些关键词匹对 对齐也能表达出 正确的 嵌套逻辑

  2. 长语句: 在换行时,我们通常在一个变量或者常量之前换行,把逗号之类的分隔符、运算符留在前一行的行尾。(就是说, 把变量/常量放在下一行的

    开头, 而不是将符合放在下一行的开头. 而且下一行 相对于变量/常量要缩进一次

    同样的, 函数调用时,如果参数个数很多,或者要传递的表达式写起来很长,那么也会涉及到长语句换行问题,

    最基本的原则是:尽可能地在参数与参数之间换行,并将逗号保留在上一行行末:

// 这是一条很长的语句:
myvar = myvar1 + myvar2 + myvar3 - myvar4 - myvar5 * myvar6 * myvar7 /
myvar8 / myvar9 + myvar10 + myvar11 - myvar12 – myvar13 * myvar14 *
myvar15 / myvar16;
// 后面的语句恢复正常的缩进位置 // 在参数与参数之间换行
printf("This function call has many parameters. %d %d %d %d/n", myvar1,
myvar2, myvar3, myvar4);

在一些必要的情况下,我们为了清晰地列个出函数的每一参数,可以采取类似结构 类 声明的写法:

// 每个参数分行

printf(

"This function call has many parameters. %d %d %d %d/n",

myvar1,

myvar2,

myvar3,

myvar4

);

当传入的表达式较为复杂时,这种写法会显得格外地清晰。类似地,在同时声明多个同一类型的变量时,也可以如此书写:

double myvar1,

myval2,

myvar3,

myvar4;

它的主要目的是便于对单个变量进行注释:

char username[MAXN], // 用户名

password[MAXN], // 密码

desc[MAXN]; // 描述

总之, 一点, 就是, 现代的编程语言, 对空格, tab, 回车等都可以随意的使用! 于是 你可以为了使 变量, 函数等等 任意代码(不像dos bat等编程

对空格还有严格要求) 处于: "清晰" "易读" "明了" "优美" 整齐等的目的 可以使用 "空格, tab, 回车" 等手段 做任意的调整, 移动!!

你可以给自己规定一套 一贯的 习惯性的 长期使用的 "书写规则" , 如: 如单词之间, 除了小括号/中括号/逗号分号等标点符号跟左右单词紧挨着

之外, 其他单词之间包括加减乘除等运算符合/大括号 之间都相隔一个空格!

这里提到的都是一些总结出来的比较常见的情况,它们并不是金科玉律,只是一个建议,但却是一个强烈的建议。

在遇到本文没有提到的情况时,可以根据实际情况和需要调整缩进。归根结底是为了更加清晰和正确地反映出代码的逻辑结构。

================================

目录结构规范 

(1) 目录建立的原则:以最少的层次提供最清晰简便的访问结构。

(2) 目录的命名以小写英文字母,下划线组成。(参照命名规范)。 

(3) 根目录一般只存放index.htm以及其他必须的系统文件;每个主要栏目开设一个相应的独立目录;

**(为什么说根目录下有img/css/js等目录, 而子目录中也有这样的目录呢?)

    因为:  根目录下的images/css/js等目录 用于存放各页面都要使用的公用图片,子目录下的  images目录存放本栏目页面使用的私有图片!!!

(4) 所有JS,ASP,PHP等脚本存放在根目录下的scripts目录。

(5) 所有CGI程序存放在根目录下的cgi-bin目录。 (6) 所有CSS文件存放在根目录下style目录。 

(7) 每个语言版本存放于独立的目录。例如:简体中文gb; 

(8) 所有flash, avi, ram, quicktime 等多媒体文件存放在根目录下的media目录。

文件头部的声明

顶部声明内容 

文件的顶部可以包含文件的测试数据、注释、作者、创建时间、修改人、修改时间。但不强行规定。

但涉及到数据的,需要包含测试数据。注释以//的方式添加多个单行注释。

什么时候 使用tab键?

tab的作用: 是用它来对齐代码的!
因此:
凡是你想对齐代码的时候, 你需要对齐代码的时候, 想对齐对齐代码的地方 , 都可以 都应该使用tab tab的特性是: 当按tab键的时候, 光标总是定位到下一tab位, 而不管这个之间有多少内容. 也就是说, tab总是定位到 4的整数倍位置. 所以可以用它
来对齐代码.

插入空行?

插入空行可以增加代码的可读性,但是空行的多少没有明确的规定, 一般是根据代码的规模和风格而定, 一般: 代码量较少时使用一个空行,

代码量较多时, 使用2个/3个 空行进行分隔.

代码分行?

代码行太长时,要分行:

主要包括:

1. 多个条件 / 判断语句

2. 函数中多个参数的情况, 这个在msdn中是最经常遇到的:

什么时候使用tab键来对齐代码和代码的风格的更多相关文章

  1. 空格和TAB键混用错误:IndentationError: unindent does not match any outer indentation level

    转自:http://www.crifan.com/python_syntax_error_indentationerror/comment-page-1/ [已解决]Python脚本运行出现语法错误: ...

  2. VS2015使用技巧 为什么我们可以输入cw后按两下tab键出现console.writeline

    镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 为什么 ...

  3. IAR修改工程名称Tab键设置模板建立

    IAR 修改工程名称 很多时候用IAR开发都是基于已有工程模板开发的,但是工程模板的名称经常让人头疼:以下是修改办法: 从一个实例工程复制后缀名为"dep,ewd,ewp,eww" ...

  4. 22 pycharm如何将一段代码同时向左缩进一个tab键

    在使用pycharm时,经常会需要多行代码同时缩进.左移,pycharm提供了快捷方式 1.pycharm使多行代码同时缩进 鼠标选中多行代码后,按下Tab键,一次缩进四个字符 2.pycharm使多 ...

  5. sublim text3快速生成html代码时,tab键失效问题

    sublime text3是一款非常强大的文本编辑器,个人觉得做前端的话这款工具很好用.便携,秒启.唯一让我觉得不是特别爽的就是插件啊,都需要自己安装.不过瑕不掩瑜,这款编辑器是很适合开发前端和PHP ...

  6. source insight 中tab键的设置

    转:http://xinzero.com/source-insight-code-alignment-ended.html source insight代码对齐Tab键终极版 以前也写过一个sourc ...

  7. python中使用空格还是使用 Tab键缩进的建议

    对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格不会出现这个问题,因 ...

  8. Qt之Tab键切换焦点顺序

    简介 Qt的窗口部件按用户的习惯来处理键盘焦点.也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件. 焦点获取方式比较多,例如:鼠标点击.Tab键切换.快捷键.鼠标滚轮等. 习 ...

  9. 修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41556615 在duilib中,按tab键会让焦点在Button一类的控 ...

随机推荐

  1. Android NDK学习之第一个实例---端口扫描

    为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习.于是想到以前找到的端口扫描的C代码,于是想用他们来练习.扫描服务端端口的方式有许多种,最简单的就是直接 ...

  2. dbm速算

    经常用到,但是经常搞忘记.在这里记录一下换算的一些技巧. 为什么要用dB 在最前面,需要解释一下dB的由来,这样会让理解变得简单一点.事实上,dB(分贝)是一个纯计数单位.使用dB的目的呢,其实就是用 ...

  3. editGrid分录表格

    waf("分录id").wafGrid("setCellEditorAllConfig", "字段名", "filteritem& ...

  4. shell命令xargs

    今天准备找出nginx非空的日志并压缩成一个文件 find . -name "meta.access.log.*" -type f -size +0k | tar -cjv -f ...

  5. Linux使用网盘客户端

    1. 百度网盘 - bypy https://github.com/houtianze/bypy 这是一个基于Python的命令行客户端. 安装参考上面链接的说明,或者这篇文章(推荐,有告诉你如何安装 ...

  6. Guava集合-BiMap

    在本篇文章中我们将介绍Guava集合中的BiMap这个接口. com.google.common.collect Interface BiMap<K,V> BiMap接口的父接口是Map& ...

  7. jQuery—选择器

    摘抄自<锋利的jQuery> 一.基本选择器 $("#one").css("background","#bbffaa"); 选取 ...

  8. Linux DHCP通过OPTION43为H3C的AP下发AC地址

    对于DHCP服务,可以在很多平台上进行设置.那么这里我们就主要讲解一下在Linux DHCP服务器上通过option 43实现H3C的AP自动联系AC注册的相关内容.原来的DHCP Server是放在 ...

  9. Python基本数据类型之int

    一.int的范围 2.7: 32位:-2^31~2^31-1 64位:-2^63~2^63-1 3.5: 在3.5中init长度理论上是无限的 二.python内存机制 在一般情况下当变量被赋值后,内 ...

  10. POJ3208:Apocalypse Someday

    传送门 很神奇的一道题,正解是AC自动机+数位DP,个人感觉POPOQQQ大爷的方法更方便理解. 按照一般套路,先搞个DP预处理,设$f[i][0/1/2/3]$分别表示对于$i$位数,其中有多少个前 ...