Advertisement

C语言编程标准规范

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
《C语言编程标准规范》是一本旨在指导程序员编写高质量、可维护及高效C程序的指南,强调代码风格和最佳实践。 ### C语言编程规范知识点 #### 一、排版 **1.1 缩进与空行** - **规范要求:** - 使用4个空格进行缩进。 - 相对独立的程序块之间以及变量声明后需添加空行。 - **示例对比:** - 不符合规范的例子: ```c if(!valid_ni(ni)) { programcode } repssn_ind=ssn_data[index].repssn_index; repssn_ni=ssn_data[index].ni; ``` - 符合规范的例子: ```c if(!valid_ni(ni)) { program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; ``` - **解释说明:** 正确的缩进与空行使用能够显著提升代码的可读性和美观度,便于团队成员之间的代码共享和理解。统一的缩进标准可以减少因编辑器设置不同导致的格式混乱问题。 **1.2 长表达式的分割** - **规范要求:** - 当一行超过80个字符时,需拆分为多行,并确保新行对齐。 - 拆分应在低优先级操作符处进行,且该操作符位于新行的开头。 - **示例对比:** - 不符合规范的例子: ```c perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof(_UL); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state(stat_item); report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid(stat_item)) && (act_task_table[taskno].result_data != 0)); ``` - 符合规范的例子: ```c perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof(_UL); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state(stat_item); report_or_not_flag = (taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid(stat_item)) && (act_task_table[taskno].result_data != 0); ``` - **解释说明:** 长表达式的正确拆分有助于提高代码的可读性,特别是在涉及复杂运算的情况下。操作符位于新行开头的方式有助于避免混淆,并使代码结构更为清晰。 **1.3 循环与判断语句的拆分** - **规范要求:** - 在循环和条件语句中,如果表达式过长,则应适当地进行拆分。 - 拆分同样应在低优先级操作符处进行,且该操作符位于新行开头。 - **示例对比:** - 不符合规范的例子: ```c if((taskno < max_act_task_number) && (n7stat_stat_item_valid(stat_item))) { program code } for(i=0,j=0;(i

全部评论 (0)

还没有任何评论哟~
客服
客服
  • C
    优质
    《C语言编程标准规范》旨在为程序员提供编写高质量、可维护C代码的一系列指导原则和最佳实践,涵盖编码风格、程序结构及常见问题解决策略。 C语言编程规范强调代码的清晰性和可维护性,在编写程序时应遵循一定的规则和标准,以确保团队协作顺畅以及提高软件质量。这包括但不限于命名约定、注释习惯、格式化要求等方面的具体指导原则。通过遵守这些规定,开发者可以创建出更加一致且易于理解的C语言项目。
  • C
    优质
    《C语言编程标准规范》是一本旨在指导程序员编写高质量、可维护及高效C程序的指南,强调代码风格和最佳实践。 ### C语言编程规范知识点 #### 一、排版 **1.1 缩进与空行** - **规范要求:** - 使用4个空格进行缩进。 - 相对独立的程序块之间以及变量声明后需添加空行。 - **示例对比:** - 不符合规范的例子: ```c if(!valid_ni(ni)) { programcode } repssn_ind=ssn_data[index].repssn_index; repssn_ni=ssn_data[index].ni; ``` - 符合规范的例子: ```c if(!valid_ni(ni)) { program code } repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; ``` - **解释说明:** 正确的缩进与空行使用能够显著提升代码的可读性和美观度,便于团队成员之间的代码共享和理解。统一的缩进标准可以减少因编辑器设置不同导致的格式混乱问题。 **1.2 长表达式的分割** - **规范要求:** - 当一行超过80个字符时,需拆分为多行,并确保新行对齐。 - 拆分应在低优先级操作符处进行,且该操作符位于新行的开头。 - **示例对比:** - 不符合规范的例子: ```c perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof(_UL); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state(stat_item); report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid(stat_item)) && (act_task_table[taskno].result_data != 0)); ``` - 符合规范的例子: ```c perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof(_UL); act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = stat_poi[index].occupied; act_task_table[taskno].duration_true_or_false = SYS_get_sccp_statistic_state(stat_item); report_or_not_flag = (taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid(stat_item)) && (act_task_table[taskno].result_data != 0); ``` - **解释说明:** 长表达式的正确拆分有助于提高代码的可读性,特别是在涉及复杂运算的情况下。操作符位于新行开头的方式有助于避免混淆,并使代码结构更为清晰。 **1.3 循环与判断语句的拆分** - **规范要求:** - 在循环和条件语句中,如果表达式过长,则应适当地进行拆分。 - 拆分同样应在低优先级操作符处进行,且该操作符位于新行开头。 - **示例对比:** - 不符合规范的例子: ```c if((taskno < max_act_task_number) && (n7stat_stat_item_valid(stat_item))) { program code } for(i=0,j=0;(i
  • C嵌入式师笔记
    优质
    《C语言嵌入式编程规范标准工程师笔记》是一本专注于指导工程师掌握高效、安全的C语言嵌入式编程技巧与最佳实践的专业书籍。 嵌入式C语言编程规范标准工程师笔记MISRA C。
  • C的MISRA-C工业(中文版).zip
    优质
    该资源为《C语言编程的MISRA-C工业标准规范》的中文版电子书压缩文件,旨在帮助开发者理解和遵循MISRA-C标准,提高软件质量和安全性。 MISRA(Motor Industry Software Reliability Association),即汽车工业软件可靠性联会,是一个位于英国的跨国汽车行业协会,成员涵盖了大部分欧美地区的汽车生产商。该组织的主要任务是为汽车行业提供服务和支持,帮助制造商开发出安全且高可靠性的嵌入式软件。 MISRA最著名的成果之一就是所谓的“MISRA C 编程规范”。这一标准包含了127条C语言编码规则,通常认为如果能够完全遵循这些规则,则编写的C代码将具备易读性、可靠性、可移植性和易于维护的特点。近年来,许多嵌入式开发者都开始以MISRA C作为衡量自己编程风格的标准之一。例如,著名的uC/OS-II操作系统就自豪地宣称其99%符合MISRA标准的要求。 此外,《嵌入式开发杂志》也刊文呼吁大家学习和应用这些编码规范。
  • C的C99(中文版)
    优质
    《C语言的C99标准规范(中文版)》是对1999年发布的C语言国际标准ISO/IEC 9899:1999的权威翻译,为程序员提供了全面理解和应用现代C编程语言的标准指南。 C99前六章的中文完整版已经翻译完成,后面的库和附录部分尚未翻译,可以参考英文版进行阅读。
  • C-C89版本(英文)
    优质
    C语言标准规范-C89版本提供了一套统一且标准化的C语言规则,旨在确保代码在不同平台上的可移植性和兼容性。 C89标准规范的这份英文文档无论是作为学习资料还是工作中的参考手册都会很有帮助,希望对大家有用。文档格式为PDF。
  • C
    优质
    《C语言编程标准教程》是一本全面介绍C语言核心概念与实践技巧的经典教材,适合编程初学者及进阶者阅读。书中详细讲解了从基础语法到高级特性等内容,并通过大量实例帮助读者掌握高效编程的方法和技巧,是学习和精通C语言的必备参考书。 在程序执行的流程方面,可以将其分为顺序结构、分支结构以及循环结构三种基本类型。 C语言中的语句主要可分为五类: 1. 表达式语句:任何表达式的末尾加上分号即可构成表达式语句。常用的有赋值语句。 2. 函数调用语句:由函数调用加上分号组成,用于执行特定功能的代码块或子程序。 3. 控制语句:这类语句主要用于控制程序流程,包括条件判断、循环和转向等类型的专门定义符及所需的表达式组成的结构。例如if-else, for 和 while 等。 4. 复合语句:由大括号{}包裹多个单条语句组成一个复合的逻辑单元,在任何允许出现单一语句的地方都可以使用,如在循环体中。 5. 空语句:仅包含分号;没有实际功能。 C语言通过调用标准库函数中的输入输出函数来实现所有的数据交互。对于键盘输入而言,主要有`scanf`和`getchar()`两种方式: - `scanf`: 用于按照指定格式接收任意类型的数据。 - `getchar()`: 只能读取单个字符的简单输入。 对于屏幕输出,则使用`printf`或`putchar()`函数来实现数据展示: - `printf`: 按照特定格式显示各种类型的值。 - `putchar()`: 用于单一字符的输出。 关系表达式和逻辑表达式的运用在程序中主要用于条件判断,如确定分支结构或是循环执行与否的关键依据。 C语言提供了多种类型的选择语句来构建不同的决策路径: 1. if: 单一选择点。 2. if-else 或者 if-elseif: 适用于两种或更多可能情况的评估和响应。 3. switch-case 结构:用于处理多分支逻辑,提供了一种简洁的方式来为多个不同值执行相应的代码块。 循环语句在C语言中也十分丰富: 1. for 循环:通常用来创建已知迭代次数且具有明确起始、结束条件及更新规则的循环。 2. while 和 do-while: 这两种形式适用于需要根据运行时确定的条件来控制是否继续执行循环的情况。 这些语句可以相互嵌套,形成更复杂的逻辑结构。然而,在设计代码的过程中应避免创建死循环(即没有退出机制的无限循环)以确保程序能够正常结束并释放资源。 总结: - 简单语句:表达式后加分号;空语句仅用分号表示。 - 复合语句:由大括号包围多条简单或复合语句构成。 - 条件执行结构包括 if, if-else 和 switch-case 三种主要形式,分别用于不同复杂度的条件判断需求。
  • C
    优质
    《C语言编程标准教程》是一本全面介绍C语言核心概念与编程技巧的经典教材,适合初学者和进阶学习者使用。 在C语言编程环境中,函数可以被分类为多种类型以适应不同的需求。这些类别包括库函数、用户定义的自定义函数、有返回值与无返回值的函数以及带有参数或不带任何参数的函数等。此外,在一个程序由多个源文件构成时,根据调用范围的不同还可以将它们区分为内部(静态)和外部函数。 ### 函数分类 1. **库函数**:这是指C系统本身提供的标准功能集合。 2. **用户定义函数**:程序员自行创建的功能模块。 3. **有返回值的函数与无返回值的函数**: - 有返回值的函数会向调用者提供一个结果,需要明确指定其类型(如整型、字符型等); - 而不带返回值的函数则通常用于执行特定的操作而不传递任何数据给外部。 4. **参数化与非参数化的功能**: - 参数化的函数允许从调用端向被调用的功能模块传输信息; - 反之,无参函数则是独立于外界输入进行操作的。 ### 函数定义和说明 - 定义:`[extern|static] 类型说明符 函数名([形参表])` - 方括号表示可选部分。 - 使用前声明(或称“原型”):`[extern] 类型说明符 函数名([形参表]);` ### 调用格式 调用函数时,使用该功能的名称并根据需要提供实际参数列表。例如: `函数名([实参表])`. ### 参数与返回值 - **形式参数**(简称形参):在定义阶段声明。 - **实际参数**(简称实参):调用时提供的具体数据。 数组作为函数的传递对象,其名称实际上代表的是一个地址而非数值本身。因此,在通过数组进行函数间通信的时候,任何一方对这个地址所指向的数据结构所做的修改都会立即反映在另一方上。 C语言支持嵌套和递归两种形式的调用机制:前者指的是在一个功能模块内部直接或间接地使用另一个功能;而后者则是在某次执行中重新调用自己的情形。 ### 变量分类 变量可以根据不同的标准进行划分,包括其数据类型、作用范围以及存储方式。在C语言环境中,对这些特征的理解对于编写高效且可维护的代码至关重要。 - **局部变量**:仅在其声明所在的函数或块内有效; - **全局变量(外部)**:在整个程序范围内都可以访问。 ### 存储类型 根据内存中的处理方式不同,可以将存储分为静态和动态两大类。前者代表了那些在编译时就已经确定其存在位置的实体;后者则是在运行期间分配与释放。 - 动态存储变量包括自动(局部)和寄存器类型的; - 自动类型:仅在其声明所在的函数或复合语句块中有效,赋值前默认为不确定状态; - 寄存器类型:用于频繁访问的本地数据,但需注意其数量有限。 - 静态存储变量则进一步细分为静态局部和全局(外部)两种: - 静态局部变量在函数或复合语句块中声明,并在整个程序生命周期内保持存在; - 它们具有初始值0且作用域仅限于定义它们的代码段。 - 全局静态变量的作用范围被限制在其定义文件之内,但其生存期贯穿整个执行过程。 通过理解这些概念和机制,可以更好地管理和优化C语言程序的设计。
  • C
    优质
    《C语言编程标准教程》是一本全面介绍C语言核心概念和应用技巧的经典教材,适合初学者及进阶学习者使用。 C语言的数据类型分为基本类型、构造类型、指针类型以及空类型。 ### 基本类型的分类及特点 | 类型说明符 | 字节大小 | 数值范围 | |-----------------|---------:|----------------------------| | 字符型 `char` | 1 | C字符集中的所有可能的字符 | | 整型 `int` | 2 |-32768 到 32767 | | 短整型 `short int` | 2 |-32768 到 32767 | | 长整型 `long int` |4 |-214783648到214783647 | | 无符号整型 `unsigned` | 2 |0 到 65535 | | 无符号长整型 `unsigned long` |4 |0 到 4294967295 | | 单精度实数 `float` | 4 |约 -1.8e+38 到 +1.8e+38 | | 双精度实数 `double` | 8 |约 -1.7e-308到+1.7e+308 | ### 常量后缀 - 使用大写或小写的字母L表示长整型。 - 使用大写或小写的字母U表示无符号数。 - 使用大写或小写的字母F表示单精度浮点数。 ### 常量类型 包括但不限于:整数值、长整数值、无符号数值、实数(含单精和双精)、字符常量以及字符串等。此外,还有转义字符用于特殊用途的表达。 ### 数据类型的自动转换与强制转换 - **自动转换**在不同数据类型混合运算或赋值时发生;通常较小字节的数据类型会向较大字节的数据类型进行转化。 - **强制转换**则是通过使用特定的操作符来进行,以明确地改变数据类型。 ### 运算符优先级和结合性 单目操作符具有较高的优先级,而赋值运算符则较低。在大多数情况下,算术运算的优先级高于关系及逻辑运算;多数操作符遵循左结合规则,但也有例外如三元运算、指针解引用等。 ### 表达式概述 表达式的组成是通过使用各种类型的变量和函数与特定的操作符来构建。每个表达式都有其值以及类型属性,并且这些值的计算依据于操作符的优先级及结合性规则来进行。 以上内容概括了C语言中数据类型、常量表示、自动/强制转换机制,运算符及其优先级等关键概念和特性。