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. eclipse中xml文件不能自动提示的解决办法

    1.出现不能提示的情况

  2. 【poj3017】 Cut the Sequence

    http://poj.org/problem?id=3017 (题目链接) 题意 给出一个数列要求将它分割成许多块,每块的数的和不超过m,要求每块中最大的数之和最小. Solution 这道题真的很不 ...

  3. BZOJ1012 [JSOI2008]最大数maxnumber

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  4. Android程序设计-圆形图片的实现

    在android中,google只提供了对图形的圆形操作,而没有实现对图片的圆形操作,所以我们无法实现上述操作,在此我们将使用框架进行设计(下述框架为as编写): https://github.com ...

  5. ecshop /goods.php SQL Injection Vul

    catalogue . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: poc http://localhost ...

  6. PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/p ...

  7. subprocess实现管道

    # shell last | cut -d ' ' -f 1 | sort -u #python from subprocess import Popen,PIPE p1 = Popen('last' ...

  8. Google Guava vs Apache Commons for Argument Validation

    It is an established good practice to validate method arguments at the beginning of the method body. ...

  9. Unable to execute dex: java.nio.BufferOverflowException.解决办法

    异常提示: [2014-01-16 09:27:35 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Ch ...

  10. Beta版本冲刺第七天 12.13

    一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 昨天完成任务 今天完成任务 问题困难 心得体会 胡泽善 用户评价的查看以及审核 用户详情的加入,并且修改了一些卡 ...