
编程规范
yangzhao0001
这个作者很懒,什么都没留下…
展开
-
常用协议类型值
Ethertype ( 十六进制 ) 协议 0x0000 - 0x05DC IEEE 802.3 长度 0x0101 – 0x01FF 实验 0x0600 XEROX NS IDP 0x0660 0x0661 DLOG 0x0800 网际协议(IP) 0x0801 X.75 Internet 0x0802 NBS Internet 0x0803 ECMA转载 2015-11-09 10:12:40 · 5013 阅读 · 0 评论 -
【4】Windows客户端C/C++编程规范“建议”——表达式和运算
目录(?)[-]表达式和运算1 比较操作中将常量设置为左值2 除法操作要判断除数是否为03 乘法或加法运算需考虑结果溢出场景4 不使用复杂的复合结构5 不要在条件表达式中赋值6 对浮点数不要做相等或不等比较7 尽可能使用sizeof变量而非sizeof类型名8 尽量避免使用位运算9 offsetof宏4 表达式和运算4.1 比较操作中将常量设置为左值转载 2015-09-24 10:48:28 · 387 阅读 · 0 评论 -
【5】Windows客户端C/C++编程规范“建议”——结构
目录(?)[-]结构1 不要使用goto2 不要利用异常机制实现流程的跳转5 结构5.1 不要使用goto等级:【必须】说明:在大型项目中,goto的滥用会导致灾难性后果。因为我们程序中一般不存在从一个函数体内部跳转到另一个函数体内部的场景,所以我们可以将跳转控制在函数内部,从而避免灾难。 例子:[cpp]转载 2015-09-24 10:51:16 · 389 阅读 · 0 评论 -
软件工程 第七版 摘抄
软件工程第七版分为了五个部分(1)软件过程给出了软件过程的各种不同观点,考虑到所有重要的过程模型,还涉及惯用过程和敏捷过程在指导思想上的分歧。(2)建模给出了分析方法和设计方法,其中重点介绍了面向对象方法和UML建模。同时也考虑到基于模式的设计及Web应用系统的设计。(3)质量管理提供了有关质量管理的概念、规范、技术和方法,使得软件团队能够很好的评估软件质量,评审软件工程工原创 2015-09-24 18:31:53 · 475 阅读 · 0 评论 -
结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; 。在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去str转载 2015-09-24 14:47:42 · 520 阅读 · 0 评论 -
计算机存储单位换算
0x10 160x100 256 0x1000 4096 4K0x10000 65536 64K0x100000 1048576 1024K 1M 0x400 1024 1K原创 2015-12-10 11:27:26 · 951 阅读 · 0 评论 -
十年研发经验工程师的嵌入式学习书籍大推荐
从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。为什么选择学习嵌入式?嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领职位之一。当前的中国IT人才面临严重的“后继乏人”, 而且这种缺口由于培训缺乏、教育模式等原因造成的,而缺口最大的,就是高级IT人才。如果你转载 2015-11-02 10:35:51 · 1421 阅读 · 0 评论 -
C语言结构体(struct)常见使用方法
今天复习一下struct,顺便挖掘一下以前没注意的小细节:基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。结构体定义:第一种:只有结构体定义[cpp] view plaincopy转载 2015-12-01 10:16:44 · 527 阅读 · 0 评论 -
C语言结构体常见错误
之前在C语言结构体常见使用方法已经说过结构体其实是对一块空间的划分与使用,那么无论怎么折腾怎么改,都是这一亩三分地,只要找到相应地址,直接改也不奇怪(C的一大核心就是指针和地址)。1.字符串覆盖其他成员:简而言之,写入的字符串超出了长度,导致后边的成员被覆盖。例如这种结构体和操作:[cpp] view plaincopy转载 2015-12-01 10:59:19 · 2933 阅读 · 0 评论 -
从外行的视角尝试讲解为什么这回丰田栽了
【第一部分】背景简介前几年闹得沸沸扬扬的丰田刹不住事件最近又有新进展。十月底俄克拉荷马的一次庭审,2007年一辆2005年凯美瑞暴冲(Unintended Acceleration,UA)致一死一伤事件中丰田被判有责。引起广泛关注的是庭审中主要证人Michael Barr的证词让陪审团同意丰田的动力系统软件存在巨大漏洞可能导致此类事件。这是丰田在同类事件中第一次被判有责。庭审过转载 2015-12-01 11:26:27 · 648 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2016-06-03 18:43:32 · 484 阅读 · 0 评论 -
指向二维数组的指针定义方式
看了一些资料,指向二维数组的指针定义方式并不是直接定义指针的指针int a[3][6];int **p=a; 像这样定义是错误的因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p仅是整形指针的指针,没跨越一次就是4字节,因此他们的大小是不匹配的,所以这样子直接等于号是不正确的。要真正的定义方式应概转载 2016-07-21 15:08:21 · 3796 阅读 · 0 评论 -
关于元素个数为0的数组use心得
最近,工作时看了别人的代码,有个chance接触这个0数组的使用。代码中要实现类似这么个功能:内存中有一段缓存区buf,buf前8字节存俩个int型值,接着是一段字符串:char buf[100];memset(buf, 0, 100);int id = 9;int len = 10;char msg[] = "123456";memcpy(buf, &转载 2016-08-02 11:06:06 · 1790 阅读 · 0 评论 -
【3】Windows客户端C/C++编程规范“建议”——函数调用
目录(?)[-]函数调用1 谨慎使用递归方法2 不要使用using namespace3 提供给外部使用的接口函数要使用namespace控制4 调用有返回值的函数时需要处理其返回值3 函数调用3.1 谨慎使用递归方法等级:【推荐】说明:递归方式控制不当,可能会导致栈空间不够而崩溃。一般的递归都可以使用循环代替。3.2不要使用us转载 2015-09-24 10:46:10 · 335 阅读 · 0 评论 -
【2】Windows客户端C/C++编程规范“建议”——指针
目录(?)[-]指针1 尽量使用智能指针2 类成员变量指针释放后一定要置空3 正确使用delete和delete4 使用指针前要判空2 指针2.1 尽量使用智能指针等级:【推荐】说明:正确使用智能指针可以省去指针管理的工作。2.2 类成员变量指针释放后一定要置空等级:【必须】说明:如果类成员变量指针在释放后没有置空,将出现如下转载 2015-09-24 10:44:59 · 369 阅读 · 0 评论 -
typedef
在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。中文名声明类型外文名typedef性 质声明定义存 储存储类的关键字差 别与宏定义有些差异目转载 2015-11-12 00:40:54 · 497 阅读 · 0 评论 -
【6】Windows客户端C/C++编程规范“建议”——宏
目录(?)[-]宏 1 减少宏的使用2 宏定义中字母需大写3 使用const变量代替宏定义值4 使用枚举代替一系列有关联的宏5 宏的参数使用时需要使用括号控制6 宏定义中不要依赖于全局变量7 复杂的宏定义使用do-while控制6 宏 6.1 减少宏的使用等级:【建议】说明:宏的使用,将使得调试变得麻烦。所以在设计和使用宏的时候,请确转载 2015-09-24 10:52:44 · 322 阅读 · 0 评论 -
【7】Windows客户端C/C++编程规范“建议”——文件
目录(?)[-]文件1 正确使用include 2 重复引用头文件需控制3 头文件中不要定义全局变量4 头文件引用顺序5 减少头文件依赖7 文件7.1正确使用#include 等级:【推荐】说明:#include 语法形式操作带引号的形式预处理器按以下顺序搜索包含文件:在包含转载 2015-09-24 10:55:25 · 343 阅读 · 0 评论 -
【8】 Windows客户端C/C++编程规范“建议”——变量和常量
目录(?)[-]变量和常量1 尽量不要使用全局变量2 不涉及外部使用的全局变量需要使用static关键字修饰3 变量需初始化后才能使用4 一行只定义一个变量5 不要直接使用常量参与运算6 变量定义在接近第一次使用处C除外8 变量和常量8.1 尽量不要使用全局变量等级:【要求】说明:全局变量的滥用和goto的滥用一样,都是一种灾难。它将使得逻辑转载 2015-09-24 10:57:24 · 399 阅读 · 0 评论 -
【9】Windows客户端C/C++编程规范“建议”——风格
目录(?)[-]风格1 优先使用匈牙利命名法2 变量名结合使用匈牙利命名法和驼峰命名法3 默认关键字后有圆括号要用空格分离4 全局变量使用g作为前缀5 全局静态变量使用s_作为前缀6 类静态成员使用_s_前缀7 全局静态变量命名尽量长而且有意义8 枚举类型成员使用全大写蛇形命名法9 风格9.1 优先使用匈牙利命名法等级:【推荐】说明:转载 2015-09-24 11:01:18 · 375 阅读 · 0 评论 -
为提高系统Nucleus OS 模块间的独立性,对Nucleus Webserv模块分析和优化的归纳
1、Nucleus Webserv分析及归纳子文件夹:Inc、SRC(1)名字对比Inc:NU_WEBSR.H 包含了所有Webserv下的头文件和Nucleus OS基础的头文件;ps_pico.h 仅提供向后兼容,仅为插件提供支持。包含了NU_WEBSR.H,和HTTP相关的宏定义和结构体;原创 2015-09-23 15:00:45 · 907 阅读 · 0 评论 -
为提高系统Nucleus OS 模块间的独立性,对Nucleus Plus内核模块分析和优化的归纳
为提高系统Nucleus OS 模块间的独立性,对Nucleus Plus内核模块分析和优化的归纳1、Nucleus Plus组件定义规范文件 意义XX_DEFS.H 组件的常量和数据类型。XX_EXTR.H 组件的外部接口定义在这个文件中,外部接口一函数原型的方式定义。XXD.C 组件的就爱那个图和全局比那里定义在这个文件中,除了很少的例外,一个组件的数据结构仅仅原创 2015-09-24 10:04:29 · 800 阅读 · 0 评论 -
Linux内核编码风格
Linux内核编码风格这是一份简短的,描述linux内核首选编码风格的文档。编码风格是很个人化的东西,而且我也不愿意把我的观点强加给任何人,不过这里所讲述的是我必须要维护的代码所遵守的风格,并且我也希望绝大多数其他代码也能遵守这个风格。所以请至少考虑一下本文所述的观点。首先,我建议你打印一份GNU的编码规范,然后不要读它。烧掉它,这是一个很高调的具有象征意义的姿态。转载 2015-09-24 10:14:54 · 506 阅读 · 0 评论 -
Linux 变量结构体等命名规则
Linux命名规则1 标识符在程序设计中,变量名、函数名、数组名等统称为标识符。简单地说,标识符就是一个名字。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能由字母(a~z,A~Z)、数字(0~9)、下划线(_)组成,并且标识符的第一个字符必须是字母或下划线,不能以数字开头。C语言不限制标识符的长度,但它受各种C语言编译转载 2015-09-24 10:16:45 · 6625 阅读 · 0 评论 -
Windows编程命名规则
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一般规则。 属性部分 全局变量 g_ const常量 c_ c++类成员变量 m_ 静态转载 2015-09-24 10:19:14 · 1261 阅读 · 0 评论 -
【0】Windows客户端C/C++编程规范“建议”——前言
前言 工作中接触了很多编程规范。其中最有意思的是,公司最近发布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:“该规范不适用于Windows平台开发”。看来这份规范是由做其他平台开发的同学制定的。那么做Windows开发的人都去哪儿了?后来由于工作需要,项目组需要我制定一份编程规范。这也是我这系列博客的由来。(转载请指明出于breaksoftware的cs转载 2015-09-24 10:37:51 · 393 阅读 · 0 评论 -
【1】Windows客户端C/C++编程规范“建议”——函数
目录(?)[-]函数1 代码行数控制在80行及以内2 代码列数控制在100字符及以内3 避免重复代码4 函数名称不可以全大写5 当函数不需要返回值时不要为其设计返回值6 对于有返回值的函数要求每个退出分支都要有显示的返回值7 大内存数据参数需要使用引用传递8 不会被改变的引用传递入参使用const声明9 入参先于出参排列10 默认参数在函数定义时非声明使用注释标记默认值11 谨慎使转载 2015-09-24 10:38:59 · 529 阅读 · 0 评论 -
svn 修改文件的可执行权限
如果第一次提交的时候没有执行权限,后续更改也是再提交也是没权限的解决方法:设置svn可执行权限,svn:executable格式:$svn propset svn:executable on文件名/文件夹名$svn propset svn:executable ontest.c$svn ci转载 2017-07-05 17:03:56 · 2098 阅读 · 0 评论