DSPC语言编程规范:提升代码质量和效率

需积分: 15 3 下载量 70 浏览量 更新于2024-07-19 收藏 162KB DOC 举报
"DSPC语言编程规范旨在规范基于DSP的代码开发,提高代码的可读性、可移植性和可靠性,适用于C或C++编程。规范包括基础篇和提高篇,涉及目录结构、文件功能划分、排版、注释、标识符命名、宏、可读性、变量与结构、函数与过程、可测性、程序效率、质量保证、代码编辑、编译、审查以及代码测试和维护。文件组织结构要求src文件夹存放源码和汇编文件,include文件夹存放头文件,lib文件夹存放库文件。每个源文件应有对应的头文件,包含函数声明,并使用内部保护符防止重复包含。特殊头文件用于全局宏定义和类型定义。" C语言编码规范的详细说明: 1. **目录结构**:工程根目录下应有src、include和lib三个文件夹。src存放源码和汇编文件,include存放头文件、.inc和.dat文件,lib存放库文件及关联资源。 2. **文件功能划分**:*.c文件实现函数,*.asm文件处理汇编代码,每个功能相关的函数放在同一个文件中。每个源文件对应一个头文件,包含函数声明。 3. **排版**:规范代码的缩进、空格和换行,以提高代码的可读性。 4. **注释**:要求清晰的函数注释、模块注释,以及必要的行内注释,帮助理解代码功能。 5. **标识符命名**:遵循一定的命名规则,使变量、函数、结构体等命名具有描述性,易于理解。 6. **宏**:合理使用宏定义,避免滥用,注意防止副作用,且应在XXX_DSP_MACRO.h中统一管理。 7. **可读性**:代码应简洁明了,避免复杂的表达式和过长的函数,增加适当的空白和对齐,以提高阅读性。 8. **变量、结构**:变量应根据作用域合理声明,避免全局变量,结构体设计要清晰,避免数据冗余。 9. **函数、过程**:每个函数应有明确的任务,参数列表简洁,返回值有意义,避免大函数和过深的嵌套。 10. **可测性**:设计可测试的代码,便于单元测试和集成测试,每个函数尽可能独立,减少依赖。 11. **程序效率**:考虑运行效率,优化算法,避免不必要的计算,合理利用内存。 12. **质量保证**:实施代码审查,使用静态分析工具检查潜在问题,确保代码质量。 13. **代码编辑、编译、审查**:使用版本控制系统,遵循一致的代码风格,进行定期的代码审查。 14. **代码测试、维护**:编写测试用例,确保代码功能正确,定期更新和维护代码,适应项目需求变化。 这套规范不仅适用于DSP的开发,也适用于其他C或C++项目,旨在通过标准化的编码实践,提升软件工程的效率和质量。
2011-12-26 上传
1 排版规则 1) 程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶格书写; 2) 源程序建议使用英文书写,尽量不含有中文。每行不超过80字符。对于较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读;循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分; 3) 左花括号要另起一行,不能跟在上一行的行末; 4) 一个变量定义占一行,一个语句占一行; 5) 对独立的程序块之间、变量说明之后必须加空行; 6) 在结构成员赋值等情况,等号对齐,最少留一个空格; 7) 若函数或过程中的参数较长,则要进行适当的划分。 8) 形参的排序风格:  最常使用的参数放在第一位;  输入参数列表应放在输出参数列表的左边;  将通用的参数放在特殊的参数的左边。 2 命名规范 2.1 应用程序的命名 “系统简称”+模块名称 2.2 子模块的命名 每个子模块的名字应该由描述模块功能的1-3以单词组成。每个单词的首字母应大写。在这些单词中可以使用一些较通用的缩写。 2.3 变量的命名 变量的命名的基本原则是使得变量的含义能够从名字中直接理解。可以用多个英文单词拼写而成,每个英文单词的首字母要大写,其中英文单词有缩写的可用缩写;变量的前缀表示该变量的类型;对于作用域跨越10行以上的变量名称不能少于4个字符,除循环变量,累加变量外不得使用I、j、k等名称的变量。变量分为取全局变量和局部变量,对于全局变量以加前缀“g_”来区分。 使用有意义的英语单词,使用大小写分隔,每个单词的第一个字母为大写 标识符种类 书写规范 示 例 函数/过程名/变量 一般标识符 CheckButtonStates 宏标识符 大写标识符 SALES_TAX 类型定义 ‘T’+一般标识符 TMyType 类标识符 ‘C’+一般标识符 CEditBox 结构标识符 ‘S’+一般标识符 SMyStructure 联合标识符 ‘U’+一般标识符 UMyUnion 字符标识符 ‘c’+一般标识符 cReadKey 字符串标识符 ‘s’+一般标识符 sComputerName 整数标识符 ‘i/ui/l/ul’+一般标识符 iNumber, ulCurrent 浮点型标识符 ‘f/d’+一般标识符 fPrice,dMoney 逻辑标识符 ‘b’+一般标识符 bIsDetailed 对象标识符 特征小写字母+一般标识符 fMyStatus, tMyTree 指针变量 p+类型前缀+一般标识符 piCount 全局变量 g+类型前缀+一般标识符 giCount 类私有变量 f+类型前缀+一般标识符 fiCount 数据库变量 以m打头 miCount 考虑到习惯性和简洁性,对于按常规使用的局部变量允许采用极短的名字,如用n、i作为循环变量,p、q作为指针等。另外,要注意的是:全局变量在程序中不要定义太多,能用局部变量的就用局部变量。如果要使用相关的变量,建议采用类的方式或者结构的方式存放,以减少具体变量的个数。 2.4 常量的命名 常量所有的字母均为大写。并且单词之间使用下划线”_”隔开。 2.5 函数/过程的命名 函数/过程名称应该尽量使用能够表达函数功能的英文名称,函数名称中应该禁止使用如同function1,function2等含义不清的名称。单词间应该使用大小写分隔。全局函数/过程名称以“g_”前缀开始。 2.6 接口命名 接口名称要以大写字母开头。如果接口包含多个单词,每个单词的首字母大写,其他字母小写,如果,这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写为Xml)。 2.7 类的命名 类名称要以大写字母开头; 类名称如果包含多个单词,每个单词的首字母要大写,其他字母小写;如果这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写作Xml); 类名称应该是一个名词或名词短语; 类成员变量的命名规则与上述规则相同,但是要以“m_”开始,表示其为成员变量(Member); 类名称不能出现下划线。 2.8 方法的命名