当前位置:首页 » 编程软件 » c编程规范

c编程规范

发布时间: 2022-01-07 22:49:09

① 有谁知道c语言程序的编程规范,给我概括一下,

1引言
1.1编写目的
在软件开发过程中,编码的工作量是相当大的,同一项目参与编程的人可能有各自编程的经验和习惯,不同风格的程序代码使维护工作变得复杂和困难。为了提高代码的可读性、系统的稳定性及降低维护和升级的成本,特编写本规范以统一各开发人员的编程工作。
1.2 适用对象
本规范适用于所有开发人员,包括应用程序、网页及数据库开发人员,及有关的程序测试人员。
1.3 引用标准
GB/T 11457 软件工程术语
GB 8566 计算机软件开发规范
GB 8567 计算机软件产品开发文件编制指南
2.编写要求
2.1一般代码规则
 可读性原则,这是评价程序质量的首选指标,宁可不要一些技巧也要保证程序的易读特性,不要因过分追求技巧而牺牲程序的可读性。
 功能独立性原则。每一程序块只完成一个独立的功能,反过来,每一独立的功能只在一程序块内完成,尽量低耦合、高内聚。
 提示说明应当简短且避免产生歧义。
 提示或警告信息应当具有向导性,能准确告诉用户错误原因及恢复方法。提示和警告对话框应当使用标准规范。
 快捷键的定义必须符合用户操作习惯。
 程序需要长时间处理或等待时,应当显示进度条并提示用户等待。
 一些敏感操作,如删除等操作在执行前必须提示用户确认。
2.2变量、函数、过程、控件等命名规则
2.2.1 变量命名
变量命名采用[作用范围][数据类型][自定义名称]规则定义,并遵循匈牙利命名法。要求看到变量名就能直观的看出其范围和数据类型。
 匈牙利命名规则:
a Array 数组
b BOOL (int) 布尔(整数)
by Unsigned Char (Byte) 无符号字符(字节)
c Char 字符(字节)
cb Count of bytes 字节数
cr Color reference value 颜色(参考)值
cx Count of x (Short) x的集合(短整数)
dw DWORD (unsigned long) 双字(无符号长整数)
f Flags (usually multiple bit values) 标志(一般是有多位的数值)
fn Function 函数
g_ global 全局的
h Handle 句柄
i Integer 整数
l Long 长整数
lp Long pointer 长指针
m_ Data member of a class 一个类的数据成员
n Short int 短整数
p Pointer 指针
s String 字符串
sz Zero terminated String 以0结尾的字符串
tm Text metric 文本规则
u Unsigned int 无符号整数
ul Unsigned long (ULONG) 无符号长整数
w WORD (unsigned short) 无符号短整数
x,y x, y coordinates (short) 坐标值/短整数
v void 空
 作用范围:
范围 前缀 例子
全局作用域 g_ g_Servers
成员变量 m_ m_pDoc
局部作用域 无 strName
 数据类型
VC常用前缀列表
前缀 类型 描述 例子
ch char 8位字符 chGrade
ch TCHAR 16位UNICODE类型字符 chName
b BOOL 布尔变量 bEnabled
n int 整型(其大小由操作系统决定) nLength
n UINT 无符号整型(其大小由操作系统决定) nLength
w WORD 16位无符号整型 wPos
l LONG 32位有符号整型 lOffset
dw DWORD 32位无符号整型 dwRange
p * 内存模块指针,指针变量 pDoc
l p FAR* 长指针 lpDoc
lpsz LPSTR 32位字符串指针 lpszName
lpsz LPCSTR 32位常量字符串指针 lpszName
lpsz LPCTSTR 32位UNICODE类型常量指针 lpszName
h handle Windows对象句柄 hWnd
lpfn (*fn)() 回调函数指针 Callback Far pointer to
CALLBACK function lpfnAbort
2.2.2 函数、过程命名
函数或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如 InitNameArray 或 CloseDialog。对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过 32 个字符的变量名在 VGA 显示器上读起来就困难了。当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用 Cnt, 一会儿使用 Count,将导致不必要的混淆。
对于自行编写的函数,若是系统关键函数,则须在函数实现部分的上方标明该函数的信息,格式如下:
//======================================================
// 函 数 名:InsureHasOutputInfo
// 功能描述:确保有适当的输出信息
// 输入参数:nProctID:相应的产品ID
// 输出参数:void
// 创建日期:00-2-21
// 修改日期:00-2-21
// 作 者:***
// 附加说明:
//======================================================
2.2.3 用户定义类型
在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以 "u" 开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli 可以被用来作为一个用户定义的客户类型变量的前缀。
注:对于非通用的变量,请在定义时加以注释说明,变量定义尽可能放在最开始处。
2.2.4 控件命名
应该用一致的前缀来命名对象,使人们容易识别对象的类型。
VC常用宏定义命名列表
前缀 符号类型 符号例子 范围
IDR_ 标识多个资源共享的类型 IDR_MAINFRAME 1~0x6FFF
IDD_ 对话框资源(Dialog) IDD_SPELL_CHECK 1~ 0x6FFF
HIDD_ 基于对话框的上下文帮助 HIDD_SPELL_CHECK 0x20001~0x26FF
IDB_ 位图资源(Bitmap) IDB_COMPANY_LOGO 1~0x6FFF
IDC_ 光标资源(Cursor) IDC_PENCIL 1~0x6FFF
IDI_ 图标资源(Icon) IDI_NOTEPAD 1~0x6FFF
ID_、IDM_ 工具栏或菜单栏的命令项 ID_TOOLS_SPELLING 0x8000~0xDFFF
HID_ 命令上下文帮助 HID_TOOLS_SPELLING 0x18000~0x1DFFF
IDP_ 消息框提示文字资源 IDP_INVALID_PARTNO 8~0xDFFF
HIDP_ 消息框上下文帮助 HIDP_INVALID_PARTNO 0x30008~0x3DFFF
IDS_ 字符串资源(String) IDS_COPYRIGHT 1~0x7FFF
IDC_ 对话框内的控制资源 IDC_RECALC 8~0xDFFF
2.3源代码规则
2.3.1风格约定:采用缩进的格式保存程序的层次结构。要求能直观的看出循环、判断等层次结构。
每一个嵌套的函数块,使用一个TAB缩进(可以设定为4个空格),大括号必须放在条件语句的下一行,单独成一行,便于匹对反大括号应该在单独的一行,在大多数情况下反扩号应有注释内容。举例如下:
if(condition1)
{
while(condition2)
{
…..
…..
}//end while(condition2)
}//end if (condition1)
或者
if(condition1){
while(condition2){
….
….
}//end while(condition2)
}//end if(conditionl)
2.3.2在操作符的前后必须使用空格。
2.3.3在分隔数组下标和函数参数的逗号后面必须添上空格。
2.3.4严禁使用go to 语句。
2.3.5对数据库操作只能使用标准SQL语句,关键字必须使用大写(如SELECT、WHERE等),数据元素(表、字段、视图等)必须按照数据字典书写。
2.3.6程序代码中要有足够的容错处理功能。
对可能发生的异常统一采用C++抛出格式:
try
{
//可能引发异常的代码
throw t; //手工抛出异常
}
catch(type_1 e) // type_1为类型定义符、如int、CException、_com_error
{
// type_1类型异常处理
}
catch(type_2 e)
{
// type_2类型异常处理
}

2.3.7程序代码结构必须层次清楚,适当使用空行分段。
2.3.8工程的版本控制要严格,版本格式为.me.ae.yy.mmdd,其中:[me]表示主版本号;[ae]表示辅版本号;[yy.mmdd]表示版本建立日期。高版本尽量兼容低版本的用法、数据或协议。
2.4文件的命名规则
2.4.1根据系统设计所规定的结构,建立相应的文件夹,根据需要建立子文件夹。
2.4.2文件夹和文件的名称应尽量能够表达其意义,尽量使用英文命名,绝对不能汉字。
2.4.3文件名称一般采用“xxx_yyy.ext”格式,xxx(3-4个字母)表示分类,yyy(字母数自定)表示操作 (如 “ /example/exp_edit.htm ”)
\

我从公司文档拷贝的!你自己看看对你有没有用!

② C语言的编程规范是什么

c语言编程是一门特殊的能让计算机看懂的语言,他也有特殊的语法......

③ C编程规范怎么样

这本书相当适合有一定C++编程经验的初级,中级程序员阅读。这本书讨论了101个规则,每个规则都按照,固定的格式(包括条款标题,摘要,讨论,示例等部分)进行说明。这样的编排方式即清晰又符合我们理解接受的渐进过程。 也许可以边看书边试着做一些回忆,想想自己是否在编程时候使用或注意到这些规范。还可以问自己一些问题,例如在我们的设计风格中是否注意了,”对一个函数之赋予一种职责“,”正确,简单和清晰第一,软件简单为美(Keep It Simple Software, KISS)“,”优先使用线性算法或者尽可能快的算法:例如O(N)“,”尽量减少全局和共享数据(会增加耦合度,从而降低可维护性,通常还会降低性能)“等等。 我们也可以考虑一下我们的编程风格,并问自己: 我们有没有做到避免使用宏, 尽可能局部声明变量, 总是初始化变量,避免函数过长,避免嵌套过深,是否做到确保所编写的每个头文件都能够独自进行编译。 C++之父Bjarne Stroustrup说过“软件开发最重要的一个方面就是弄清楚自己要构建的是什么”,对于类的设计与继承这一部分也相当值得一读,例如以下条款“用小类代替巨类”,“ 用组合代替继承”,“避免从并非要设计成基类的类中继承”,“优先提供抽象接口”,“共用继承即可替换性。继承,不是为了重用,而是为了被重用,Liskov替换原则: Liskov Substitution Principle,共用继承所建模的必须总是“是一个is a”,更精确的“其行为象一个 works like a ”关系:所有基类约定必须满足这一点。”等等,也许我们对这些规则都了然于胸,但是我们是否时时刻刻注意到这些规则呢,这本书就提供了这样一个“小声音”,提醒我们,在经过一段时间的编程后,我们也许常常会被一些“坏习惯”占据,这个“小声音”,也许就是摒除这些“坏习惯”的利器, 也许你和我一样在编写C++的时候会不自觉地使用了一些不先进的C的方式,例如使用数组,匈牙利标法,switch等等,看了这本书后绝对会大有启发,例如以下的部分书摘: ”匈牙利记法:将类型信息并入变量名的记法,是混用了类型不安全语言(特别是C)中的设施,这在面向对象语言中是可以存在的,但是有害无益,在泛型编程则更不不行。所以,任何C++编程规范都不应该要求使用匈牙利记法,而在规范中选择禁用该记法则是合理的。“ ”通过类型分支(type switching)来定制行为既不牢固,容易出错,又不安全,而且是企图用C++编写C代码的明显标志。这是一种很不灵活的技术,要添加新特性时必须回过头对现有代码进行修改。它还不安全,因为添加新类型时,如果忘记修改所有分支,编译器也不会告知。“ “不要使用C语言风格的数组,指针运算和内存管理原语操作实现数组抽象。使用vector或者string不仅更轻松,而且还有助于编写更安全,伸缩性更好的软件。毋庸置疑,在当今软件中缓冲区溢出和安全缺陷是罪魁祸首。固定长度的数组所带来的愚蠢限制,即使仍在正确界限内,也是软件开发人员的一大困扰。” ”不要使用C风格的强制转换。“ 初级,中级程序员看了本书后一定会大有收获,掌握这些规范,也许是成长为优秀程序员的重要的坚实一步。 ------- ------ 本文原始地址:http://hanyionet.blogspot.com/2009/09/blog-post_20.html

④ 华为c语言编程规范是怎样的

链接:

提取码:fgwo

《华为编程规范与范例》是一本计算机编程应用类书籍。

⑤ C语言编程规范

把调用函数写在前面。
如果需调用的函数在后面,需在main函数前声明

一半习惯把自定义函数写在前面

⑥ C语言 编程规范

已发送

⑦ 最新c语言编程规范是什么

已发送到你的邮箱,请查收。注:邮件服务器可能有延迟,邮件发出后半分钟内即可收到;若仍没收到,请首先检查您邮箱的垃圾箱!

⑧ c语言书写的规则

= , ; + - / 他们左右的空格还是不空格,空几个格都看你的习惯的。没有关系
int 这类的定义后边至少有一个空格,多了不限

⑨ C语言编程规范问题

只看得出第一个应该是错误的,重命名后的uint8_t的含义跟前面的unsigned char是相等的,无符号字符,重复了。

⑩ 谷歌发布的C 编程规范

http://wenku..com/view/f5f2fe87bceb19e8b8f6ba23.html

热点内容
ex表格撤销保护的密码是多少 发布:2024-11-10 07:51:40 浏览:751
电脑能上网但是游戏链接不到服务器 发布:2024-11-10 07:35:49 浏览:671
编译器怎么知道源程序位置 发布:2024-11-10 07:16:02 浏览:585
网页游戏源码H5 发布:2024-11-10 07:05:47 浏览:307
java使用c 发布:2024-11-10 06:52:55 浏览:878
内存储器与外存储器哪个存储量大 发布:2024-11-10 06:43:50 浏览:734
赚钱宝缓存复制 发布:2024-11-10 06:41:30 浏览:389
29源码 发布:2024-11-10 06:41:28 浏览:533
算法是前端嘛 发布:2024-11-10 06:37:45 浏览:914
弦距算法 发布:2024-11-10 06:07:30 浏览:717