什么时候使用tab键来对齐代码和代码的风格
在大括号嵌套语法中, 最好是左右(前后) 大括号单独占一行, 这样的嵌套关系最清晰
也就是说, c/c++的风格是最清晰的. 而java php将 左大括号放在上一行的末尾, 稍次一点.
不过在if while switch等条件后, 紧跟大括号是常用的习惯, 而且 结尾大括号跟 这些关键词匹对 对齐也能表达出 正确的 嵌套逻辑长语句: 在换行时,我们通常在一个变量或者常量之前换行,把逗号之类的分隔符、运算符留在前一行的行尾。(就是说, 把变量/常量放在下一行的
开头, 而不是将符合放在下一行的开头. 而且下一行 相对于变量/常量要缩进一次同样的, 函数调用时,如果参数个数很多,或者要传递的表达式写起来很长,那么也会涉及到长语句换行问题,
最基本的原则是:尽可能地在参数与参数之间换行,并将逗号保留在上一行行末:
// 这是一条很长的语句:
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键来对齐代码和代码的风格的更多相关文章
- 空格和TAB键混用错误:IndentationError: unindent does not match any outer indentation level
转自:http://www.crifan.com/python_syntax_error_indentationerror/comment-page-1/ [已解决]Python脚本运行出现语法错误: ...
- VS2015使用技巧 为什么我们可以输入cw后按两下tab键出现console.writeline
镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 为什么 ...
- IAR修改工程名称Tab键设置模板建立
IAR 修改工程名称 很多时候用IAR开发都是基于已有工程模板开发的,但是工程模板的名称经常让人头疼:以下是修改办法: 从一个实例工程复制后缀名为"dep,ewd,ewp,eww" ...
- 22 pycharm如何将一段代码同时向左缩进一个tab键
在使用pycharm时,经常会需要多行代码同时缩进.左移,pycharm提供了快捷方式 1.pycharm使多行代码同时缩进 鼠标选中多行代码后,按下Tab键,一次缩进四个字符 2.pycharm使多 ...
- sublim text3快速生成html代码时,tab键失效问题
sublime text3是一款非常强大的文本编辑器,个人觉得做前端的话这款工具很好用.便携,秒启.唯一让我觉得不是特别爽的就是插件啊,都需要自己安装.不过瑕不掩瑜,这款编辑器是很适合开发前端和PHP ...
- source insight 中tab键的设置
转:http://xinzero.com/source-insight-code-alignment-ended.html source insight代码对齐Tab键终极版 以前也写过一个sourc ...
- python中使用空格还是使用 Tab键缩进的建议
对于程序员来说,其实Tab和空格远远不只是“立场”问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格不会出现这个问题,因 ...
- Qt之Tab键切换焦点顺序
简介 Qt的窗口部件按用户的习惯来处理键盘焦点.也就是说,其出发点是用户的焦点能定向到任何一个窗口,或者窗口中任何一个部件. 焦点获取方式比较多,例如:鼠标点击.Tab键切换.快捷键.鼠标滚轮等. 习 ...
- 修复duilib CEditUI控件和CWebBrowserUI控件中按Tab键无法切换焦点的bug
转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41556615 在duilib中,按tab键会让焦点在Button一类的控 ...
随机推荐
- js-JavaScript高级程序设计学习笔记1
第一章 1.一个完整的JavaScript实现应该由三个不同的部分组成:核心(ECMAScript).文档对象模型(DOM,提供访问和操作网页内容的方法和接口),浏览器对象模型(BOM,提供与浏览器交 ...
- JVM学习笔记:虚拟机的类加载机制
JVM类加载机制分两部分来总结: (1)类加载过程 (2)类加载器 一.JVM类加载过程 类的加载过程:加载 →连接(验证 → 准备 → 解析)→ 初始化. 类的生命周期:加载 →连接(验证 → 准备 ...
- HDFS源码分析:NameNode相关的数据结构
本文主要基于Hadoop1.1.2分析HDFS中的关键数据结构. 1 NameNode 首先从NameNode开始.NameNode的主要数据结构如下: NameNode管理着两张很重要的表: 1) ...
- oracle大数据量。表分区提示查询效率
现在业务有一张usertrack 日志记录表.每天会产生30万条数据.数据量大查询效率会非常慢 所以我考虑通过表分区来提示效率 逻辑上是一张表.但是分区后会按照分区条件将数据分在不同的物理文件 优点 ...
- SPOJ375 Query on a tree
Description You are given a tree (an acyclic undirected connected graph) with N nodes, and edges num ...
- Linux Network Related Drive
catalog . 通过套接字通信 . 网络实现的分层模型 . 网络命名空间 . 套接字缓冲区 . 网络访问层 . 网络层 . 传输层 . 应用层 . 内核内部的网络通信 1. 通过套接字通信 Lin ...
- Fckeditor PHP/ASP File Upload Vul
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScrip ...
- C++ 之const Member Functions
Extraction from C++ primer 5th Edition 7.1.2 The purpose of the const that follows the parameter lis ...
- Request 对象
Request 对象用于检索从浏览器向服务器发送的请求中的信息. 1.使用Request对象的Browser属性,可以访问HttpBrowserCapabilities属性获得当前正在使用哪种类型的浏 ...
- FZU 1894 志愿者选拔(单调队列)
传送门 Description 世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动.参加志愿者选拔的同学们排队接受面试官们的面试.参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查. ...