什么时候使用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一类的控 ...
随机推荐
- Java中的异常处理:何时抛出异常,何时捕获异常?
今天在看hadoop源码时,想想自己最近在做的那个系统,发现很多异常处理的方式不对,还是按照传统的异常处理方式(即:采用返回值来标识程序出现的异常情况).而hadoop中很多方法的声明是有异常抛出的, ...
- UOJ265 【NOIP2016】愤怒的小鸟
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- http80端口转发(实现微信公众号接口绑定IP时,同时支持多个公众号)
http80端口转发 背景 微信公众平台接口绑定服务器时,如果使用IP需要使用80端口,此组件可实现一个IP上绑定多个公众平台接口 使用方法 http://(IP)/WeixinMP/(转发的地址Ba ...
- Visual Studio多版本进行切换的研究
最近在升级公司内部的项目到最新的开发工具Visual Studio 2015,可能在团队开发上会遇到这些问题: 1.团队成员的电脑和系统,设置安装的开发工具参差不齐 2.有些成员的Visual Stu ...
- TYVJ1427 小白逛公园
时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 小新经常陪小白去公园玩,也就是所谓的遛狗啦…在小新家附近有一条“公园路”,路的一边从南到北依次排着n个 ...
- Hash Length Extension Attacks
catalogue . Hash函数的内部原理 . 漏洞原理 1. Hash函数的内部原理 0x1: 分组.Padding 哈希函数以区块为单位操作数据.比如说,MD5, SHA1, SHA256的区 ...
- String 与StringBuffer的区别与使用
摘自:http://www.cnblogs.com/kaituorensheng/p/3776484.html 区别: String类是字符串常量,是不可更改的常量.而StringBuffer是字符串 ...
- sql练习
- php代码加密
<?php function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1 ...
- nginx+php-fpm的socket配置小结
关于socket的介绍本文不再赘述,生产环境中常用socket方式,本文简述其配置方式. #cd /app/local/php#切换到php安装目录下 #mkdir run #chmod 777 ./ ...