C编程规范Made by Edward.xu
序:此系列规范综合依据本人C/C++语言和JAVA语言的书写习惯以及参考其他规范所总结,不足之处还请见谅。
北京理工大学珠海学院 徐方鑫
E-mail:280599580@qq.com
第一章:说明性文件
1.程序说明性文件
/*****************************************************
Copyright (c/c++), 2010~2011, zhbit, Edward.xu ,ltd,
First name://文件名
Author: Version: Data: //作者,版本,完成日期
Description://程序具体功能描述
Others://其他备注
Function list://封装函数列表
******************************************************/
2.封装函数说明性文件
/******************************************************
Function name://函数名称
Argument://参数列表(名字,类型)
Output://输出(名字,类型)
Function://函数功能说明
******************************************************/
3.调试说明性文件
/******************************************************
Debug data://调试时间
Bug://故障描述
Exclude://故障处理描述
*******************************************************/
第二章:命名约定
1.常量命名
常量的每个单词均大写,单词直接使用下划线连接
etc: #define MAX_VALUE value
const int MAX_VALUE = value;
2.变量命名
(1)变量名中第一个单词小写,其后的每个单词的第一个字母大写
etc: Int dayName;
(2)用名词命名变量,使变量名能够做到见名识意,必要时允许使用简称
etc: char addess;
char addr;
(3)数据变量需要赋初值,当无确定初始值时赋0
etc: int addess=0;
3.方法命名(函数命名)
(1)方法名中第一个字母大写,其后全部小写
etc: Int Ture( void );
(2)参数必须写明,而且全部小写,局部变量命名以_in为结尾
Int Read( int x_in , int y_in );
4.类命名
(1)类名中第一个字母大写,其后每个单词的第一个字母大写
etc: public class PrintStream{}
(2)用名词命名类
public class HelloWorld{}
5.全局变量命名
全局变量无论命名为何,结尾以_all为结尾
etc: ( extend ) int x_all;
第三章:注释约定
1. 单行注释
代码后隔一空格进行注释
etc: Int sum; //sum is all the number
2.多行注释
多行注释推荐使用老版C注释的方案
/*
* //注释内容
*
*/
etc:int sum; /*
int number; * sum_number , number is the score , summerl
char sunmmerl; * is the char sun_numer………..
double xgate; */
3.注释推荐用英语写,必要时可以使用中文
第四章:程序的版式
1.空行
(1)每个类声明,每个函数体声明之后都要加空行
(2)函数体内,逻辑上密切相关的语句不加空行,其他地方加空行分离
etc:
(1)
#include <stdio.h>
void delay(int cnt_in)
{
While(cin_in--);
}
void main(void)
{
delay(30000);
Return 0;
}
|
(2)
While(1)
{
Int number=0;
Int sum=0;
Int x=0;
If(x>number)
sun+=x;
else
sun-=x;
}
|
2.常量
(1)常量在程序头进行定义,统一为宏或者CONST的形式,不可夹杂定义
(2)避免使用常量作为方法(函数)的参数
3.变量
(1)变量定义位于程序开头,若在程序中间定义变量时,需要在程序开头添加注释
(2)定义变量时每行仅定义一个,多行时变量需对齐
(3)尽量避免使用全局变量,定义全局变量时需要加上说明性注释
4.缩进
(1)如果选用的IDE带自动的缩进功能就自动缩进
(2)若无缩进功能的话,手动以两个空格符作为缩进(为了程序在不同平台的可移植性建议手动缩进)
(3)函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
etc:
(1)自动缩进
#include <stdio.h>
void main(void)
{
int x=0;
int y=0;
int sum=0;
scanf("%d %d",&x,&y);
sum=x+y;
if(x>y)
printf("hello world");
}
|
(2)手动缩进
#include <stdio.h>
void main(void)
{
int x=0;
int y=0;
int sum=0;
scanf("%d %d",&x,&y);
sum=x+y;
if(x>y)
printf("hello world");
}
|
5.宏定义
(1)宏定义常量时,需要加需要符合常量命名规则
(2)宏定义变量表达式时,需要加上括号
(3)在定义多个宏变量表达式时,需要用大括号封装成语句块
(4)使用宏时,不允许参数发生变化
6.结构化要求
(1)程序判断时,禁止使用两条等价的支路
(2)禁止GOTO语句
(3)当使用IF语句进行判断时,禁止使用else return , else goto
(4)多路分支时建议使用case语句
(5)循环时避免多个出口,如有特殊情况要中途退出循环,需加注释
(6)避免使用条件表达式去替代逻辑运算
(7)禁止将短语句写在同一行中
7.较长语句的处理办法
(1)长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读
(2)循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首
etc:
(1)
sum = x*x/100*average
+x/x*100%average
-x%x*100/average
|
(2)
Int delay(int cnt_in,
Int dalaynumber_in,
char string_in)
|
8.主函数规定
(1)主函数建议使用int类型规定返回时,函数尾返回0
(2)主函数需要定义参数类型,一般为void,当需要使用命令行参数时需要附加注释
etc:
(1)
Int main(void)
{
return 0;
}
|
(2)
void main()
{
}
|
第五章:容错性约定
1.进行逻辑运算时,避免使用浮点型数据
2. 建议强转,避免使用默认的类型转换
3.多所有用户的输入,进行合法性检查
4.禁止在同一语句中多次应用++,--单目运算符,即每个语句仅能最多使用一个++或者—单目运算符
5.编程时,要防止差1错误
6.在程序测试时需要打开所有告警
7.认真处理程序所能遇到的各种出错情况
分享到:
相关推荐
行业文档-设计装置-粗笔杆方便带手套持握的冬用型书写笔
1.画板功能,实现了基本的画图功能,粗笔、细笔、颜色切换、橡皮擦等功能 2.导入背景图片,图片可做移动、放大缩小等功能 3.放大板,手机可能存在屏幕过小而导致不好画图的问题,放大板就是为了解决这个问题而开发的。...
该应用程序还忽略了许多LDAP详细信息,用粗笔描画了对象。 这可能取决于您的喜好。 对于我的个人用途,这实际上是完全可以的。这不是什么这不是实际LDAP管理工具(例如Apache Directory Studio)的全面替代。 尽管...
前面说到,STED通过类似橡皮擦的功能来将点 扩展函数变小。有同学说,我不用橡皮擦,一样能用粗笔画细线啊!只要找两张纸,对成一个细缝,然后再画就可以了。
可以帮助开发者自动安装Android SDK、Android NDK、Java开发工具包(JDK)以及Flutter SDK,这些都是移动应用开发(特别是Android和Flutter应用)所必需的。 脚本首先定义了一些变量,用于存储工具的安装路径和版本。然后,定义了一个install_tool函数,用于检查工具是否已安装,如果没有安装则执行安装命令。 接着,脚本定义了install_android_sdk、install_android_ndk、install_java_jdk、set_java_env和install_flutter_sdk等函数,分别用于安装Android SDK、Android NDK、Java JDK、设置Java环境变量以及安装Flutter SDK。 在主程序部分,脚本按照顺序调用这些函数来安装和配置各个工具。安装完成后,脚本会输出一条消息表示配置已完成。
AI Agent智能应用从0到1定制开发 关键特点: 自动化:AI Agent可以自动执行重复性任务,提高效率并减少人力成本。 智能决策:基于复杂的算法,AI Agent能够进行决策支持,分析数据并提供洞察。 自然语言处理:许多AI Agent具备理解和生成自然语言的能力,使其能够与人类用户进行交流。 机器学习:AI Agent可以利用机器学习技术从经验中学习,不断优化其性能。 个性化:AI Agent能够根据用户的行为和偏好提供个性化的体验。 可扩展性:AI Agent可以设计成模块化,方便扩展新功能或适应不同规模的需求。 实时响应:AI Agent能够提供快速的实时响应,满足紧急任务的需求。
魔方PPT模板04_动态清新绿色学术答辩模板.pptx
Tomcat是一个广泛使用的开源Web服务器和Servlet容器,它是由Apache软件基金会(ASF)主持的一个项目。Tomcat实现了Java Servlet、JavaServer Pages(JSP)、Java Expression Language(JSTL)和WebSocket等技术规范,并提供了一个用于运行Java Web应用程序的运行时环境。由于其稳定性、可扩展性和灵活性,Tomcat已成为许多企业级Java Web应用程序的首选服务器。 Tomcat最初是由Sun Microsystems在1999年作为Servlet API 2.2和JSP 1.1规范的参考实现而开发的。自那时以来,Tomcat不断发展壮大,成为了一个功能强大且易于使用的Web服务器和Servlet容器。Tomcat的开源性质和广泛的支持使得它成为了许多开发者和企业的首选。
用法链接:https://menghui666.blog.csdn.net/article/details/137888208?spm=1001.2014.3001.5502 基于Qt+C++实现的各种炫酷的样式表,如单选、多选、按钮、日历、表格、下拉框、滚轮等,+源码 基于Qt+C++实现的各种炫酷的样式表,如单选、多选、按钮、日历、表格、下拉框、滚轮等,+源码 基于Qt+C++实现的各种炫酷的样式表,如单选、多选、按钮、日历、表格、下拉框、滚轮等,+源码
罗茨泵设计sw17可编辑含工程图设计图纸.7z
计算机思维训练+C语言
基于JAVA毕业设计-JAVA基于遗传算法的中药药对挖掘系统的设计与实现(源代码+论文).rar 用数据挖掘技术研究了中药方剂配伍的规律。主要工作:分析了关联规则存在的问题,引入双向关联规则的概念;介绍了遗传算法的基本原理,研究了遗传算法在数据挖掘中的应用;将方剂库转换为位图矩阵,大大提高搜索效率;开发了一个基于遗传算法的中药药对药组挖掘系统。论文组织如下:介绍了研究背景和意义;阐述了相关的理论基础;提出了系统的设计方案;详细展示了基于遗传算法的双向关联规则挖掘系统的实现过程,包括位图矩阵的实现,个体的编码方法,适应度函数的设计,规则的提取,选择、交叉、变异等遗传操作的实现等;利用脾胃类方剂库对系统进行了测试,并对测试结果进行了分析。结果证明:该系统能够快速高效地从方剂库中找出具有重要意义的药对药组,对中医药的研究发展有一定意义。
C常用算法程序集数值计算数值积分提取方式是百度网盘分享地址
raun内外盒组装包装设备含工程图sw17可编辑设计图纸.7z
四路仿PLC继电器控制板原理图+教程+源代码+下位机源代码+上位机源代码+其它技术资料.7z
数据来源:中经数据库 数据范围:各个省份的区县财政收入即一般公共预算收入、税收收入 (一般财政收入即一般公共预算收入的完整度较高。税收收入一般50%的区县会有数据) 数据年度区间:2000-2023(具体看文件名上的年度区间) 珍贵数据,包含了各省所有的区、县、县级市哦,很难找到的哦
2021年全国职业院校技能大赛模块ALinux评分标准
tomcatCentos7下tomcat的安装.zip
绚彩小清新毕业答辩模板.ppt
毕业设计-微信小程序选座系统源码.zip文件 毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系统源码.zip文件毕业设计-微信小程序选座系