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. Java中的异常处理:何时抛出异常,何时捕获异常?

    今天在看hadoop源码时,想想自己最近在做的那个系统,发现很多异常处理的方式不对,还是按照传统的异常处理方式(即:采用返回值来标识程序出现的异常情况).而hadoop中很多方法的声明是有异常抛出的, ...

  2. UOJ265 【NOIP2016】愤怒的小鸟

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

  3. http80端口转发(实现微信公众号接口绑定IP时,同时支持多个公众号)

    http80端口转发 背景 微信公众平台接口绑定服务器时,如果使用IP需要使用80端口,此组件可实现一个IP上绑定多个公众平台接口 使用方法 http://(IP)/WeixinMP/(转发的地址Ba ...

  4. Visual Studio多版本进行切换的研究

    最近在升级公司内部的项目到最新的开发工具Visual Studio 2015,可能在团队开发上会遇到这些问题: 1.团队成员的电脑和系统,设置安装的开发工具参差不齐 2.有些成员的Visual Stu ...

  5. TYVJ1427 小白逛公园

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述     小新经常陪小白去公园玩,也就是所谓的遛狗啦…在小新家附近有一条“公园路”,路的一边从南到北依次排着n个 ...

  6. Hash Length Extension Attacks

    catalogue . Hash函数的内部原理 . 漏洞原理 1. Hash函数的内部原理 0x1: 分组.Padding 哈希函数以区块为单位操作数据.比如说,MD5, SHA1, SHA256的区 ...

  7. String 与StringBuffer的区别与使用

    摘自:http://www.cnblogs.com/kaituorensheng/p/3776484.html 区别: String类是字符串常量,是不可更改的常量.而StringBuffer是字符串 ...

  8. sql练习

  9. php代码加密

    <?php function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1 ...

  10. nginx+php-fpm的socket配置小结

    关于socket的介绍本文不再赘述,生产环境中常用socket方式,本文简述其配置方式. #cd /app/local/php#切换到php安装目录下 #mkdir run #chmod 777 ./ ...