首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言编码规范

1-排版规则 程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶格书写; 源程序建议使用英文书写,尽量不含有中文。每行不超过80字符。...2-命名规范 应用程序的命名 “系统简称”+模块名称 子模块的命名 每个子模块的名字应该由描述模块功能的1-3以单词组成。每个单词的首字母应大写。在这些单词中可以使用一些较通用的缩写。...源程序头的注释规范 每个源程序(包括存储过程)必须有头部说明、版本说明函数结构三个部分: 源程序头部说明 FileName: Copy Right: System: Module: Function...简要说明本程序的功能 相关详细设计文档号 编码人员 创建日期 源程序版本说明 Editor: Version: Edit Date:修改人员 版本号 修改日期 4.2 函数头的注释规范 Name...代码通常使用几个函数过程来实现某一项功能,这时候需要使用区注释将这些具有共同目的的函数过程标明出来。 使用整行的”*”作为隔离行,让程序清晰可读。

2.3K20

C语言编程规范

2018 /10 图片来源于网络 C语言入门到精通 公众号 闫小林 C是一门朴素的语言,它是大部分程序员的入门语言,那么C语言的常见编程规范都有哪些呢 1 头文件: 1.头文件中适合放置接口的声明...,不适合放置实现 2.头文件应向稳定的方向包含,产品依赖于平台,平台依赖于标准库 3. .c/.h文件禁止包含用不到的头文件 4.每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口....c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量 10.如果一个模块包含多个子模块,则建议每一个子模块提供一个对外的.h,文件名为子模块名,降低接口使用者的编写难度 2 编码...: 1.函数不变参数使用const 2.全局变量应增加“g_”前缀 3.静态变量应增加“s_”前缀 4.在源文件范围内声明定义的所有函数,除非外部可见,否则应该增加static关键字 5.函数调用不要作为另一个函数的参数使用...C语言入门到精通 4 禁止内存泄漏: 1.异常出口处检查内存、定时器/文件句柄/Socket/队列/信号量/GUI等资源是否全部释放 2.删除结构指针时,必须从底层向上层顺序删除 3.使用指针数组时

32.6K3129
您找到你想要的搜索结果了吗?
是的
没有找到

C语言命名规范

C是一门朴素的语言,你使用的命名也应该这样。然而,当面对复杂情况时就有些棘手,给全局变量取一个描述性的名字是必要的。把一个全局函数叫做“foo”是一种目光短浅的行为。...另一方面,下划线法是C出现后开始流行起来的,在许多旧的程序UNIX这样的环境中,它的使用非常普遍。匈牙利命名法。广泛应用于象Microsoft Windows这样的环境中。...这样做的好处在于能增加程序的可读性,便于对程序的理解维护。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。...即:c_+变量命名规则;示例:const char* c_szFileName; 4-函数的命名规范 函数的命名应该尽量用英文(或英文缩写、中文全拼、中文全拼缩写)表达出函数完成的功能——函数名应准确描述函数的功能...应确保每个函数声明中的参数的名称、类型定义中的名称、类型一致。 5-函数参数命名规范 参数名称的命名参照变量命名规范

2.5K20

聊聊C语言-程序编程语言

那么小编接下来将要写一个系列的文章来带你进入C语言编程的奇妙世界。 什么是编程? 编程简单来说就是用计算机能够识别的语言来编写程序。...我们平时用的电脑、平板、手机、电视机、计算机以及工厂用的各种设备无一不包含程序。 ? 上面这幅画面肯定大家都见过它包含不少人对儿时的回忆,它就是一个计算机程序。 什么是编程语言?...后来人们为了解决这件苦逼的事情发明了很多种高级语言(也叫形式语言)。 ? 上面这幅图展现了人们发明的大多数高级语言,但是并不包含全部。我们现在用的程序基本都是用这些高级语言编写的。...只有经过编译或者解释完后,我们的程序才能在计算机或者其他设备上运行。经历的过程如下: ? 为什么选择C语言?...既然有那么多的高级语言我们为什么选择C语言编写程序呢,也许是小编对C语言有着独有的情怀吧,也许是因为我们上过大学的人基本上学的第一门编程语言都是C语言吧,也许它是至今为止用的最多的底层硬件打交道的语言

11.3K80

C语言基础】编码规范

基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。 1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 1.3 尽量使用标准库函数公共函数。...2.3 每个源程序文件,都有文件头说明,说明规格见规范。 2.4 每个函数,都有函数头说明,说明规格见规范。 2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。...2.13 空行空白字符也是一种特殊注释。 2.14 一目了然的语句不加注释。 2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。...2.16 注释行数(不包括程序函数头说明部份)应占总行数的 1/5 到 1/3 。 3. 结构化要求 3.1 禁止出现两条等价的支路。 3.2 禁止GOTO语句。...禁止 ELSE GOTO ELSE RETURN。 3.4 用 CASE 实现多路分支。 3.5 避免从循环引出多个出口。 3.6 函数只有一个出口。 3.7 不使用条件赋值语句。

1.4K50

C语言程序编译链接

词法分析 将源代码程序被输⼊扫描器,扫描器的任务就是简单的进⾏词法分析,把代码中的字符分割成⼀系列的记号(关键字、标识符、字⾯量、特殊字符等)。...链接  链接是⼀个复杂的过程,链接的时候需要把⼀堆⽂件链接在⼀起才⽣成可执⾏程序。 链接过程主要包括:地址空间分配,符号决议和重定位等这些步骤。...test.c 经过编译器处理⽣成 test.o  add.c 经过编译器处理⽣成add.o  我们在 test.c 的⽂件中使⽤了 add.c ⽂件中的 Add 函数 g_val 变量。...我们在 test.c ⽂件中每⼀次使⽤ Add 函数 g_val 的时候必须确切的知道 Add g_val 的地 址,但是由于每个⽂件是单独编译的,在编译器编译 test.c 的时候并不知道 Add...函数 g_val 变量的地址,所以暂时把调⽤ Add 的指令的⽬标地址 g_val 的地址搁置。

8510

C语言编程规范 clean code

参考该规范之前,希望您具有相应的C语言基础能力,而不是通过该文档来学习C语言。...了解C语言的ISO标准; 熟知C语言的基本语言特性; 了解C语言的标准库; 总体原则 代码需要在保证功能正确的前提下,满足可读、可维护、安全、可靠、可测试、高效、可移植的特征要求。...extern "C" 通常出现在 CC++ 混合编程的情况下,在 extern "C" 中包含头文件,可能会导致被包含头文件的原有意图遭到破坏,比如链接规范被不正确地更改。...,其链接规范为 "C++"。...建议5.3 使用强类型参数,避免使用void* 尽管不同的语言对待强类型弱类型有自己的观点,但是一般认为c/c++是强类型语言,既然我们使用的语言是强类型的,就应该保持这样的风格。

5.3K10

C语言编程规范 clean code

参考该规范之前,希望您具有相应的C语言基础能力,而不是通过该文档来学习C语言。...了解C语言的ISO标准; 熟知C语言的基本语言特性; 了解C语言的标准库; 总体原则 代码需要在保证功能正确的前提下,满足可读、可维护、安全、可靠、可测试、高效、可移植的特征要求。...extern "C" 通常出现在 CC++ 混合编程的情况下,在 extern "C" 中包含头文件,可能会导致被包含头文件的原有意图遭到破坏,比如链接规范被不正确地更改。...,其链接规范为 "C++"。...建议5.3 使用强类型参数,避免使用void* 尽管不同的语言对待强类型弱类型有自己的观点,但是一般认为c/c++是强类型语言,既然我们使用的语言是强类型的,就应该保持这样的风格。

4.1K10

C语言规范_V1.1

C语言中可以有多种代码的编写方法(当然其它编程序语言亦如此),你可以尽可能采用一种好的风格,以达到以下目的: 可移植 (Portability) 连贯 (Consistency) 整洁(Neatness.../* ******************************************************************************** * Copyright (C),1975...常量(宏定义枚举常量)采用全大写下划线组合。拒绝使用大小写组合匈牙利风格。 (2) 全局变量全局函数命名要详细。...#define SQUEARE( a ) ((a) * (a)) int b = SQUEARE( a ); a++; //结果:a = 6, 只执行一次 8.LOG打印 8.1当前位置定位打印 程序调试时...如果是C语言里的调试输出,如下样式: #define LOG_DEBUG_SUPPORT printf("%s:%d: Entry %s", __FILE__, __LINE__, __func__);

72510

C语言】预处理程序环境

一、程序的翻译环境执行环境 我们的代码写完后称为源代码,源代码一般都要经过由编译器链接器组成的翻译环境中,翻译成二进制的指令(机器指令),再进入执行环境一步步执行代码。...二、详解编译+链接 其中,在编译过程中,符号汇总是指将所有.c文件的函数名汇总在一起;在汇编过程中的形成符号表是指,将所有.c文件中的函数都给一个地址,其中,在主函数中的函数如果只有声明时,会给一个无效的地址...#define的替换规则 在程序中扩展#define定义符号宏时,需要涉及几个步骤。 在调用宏时,首先对参数进行检查,看看是否包含任何由#define定义的符号。如果是,它们首先被替换。...(a):(b)) 这里不用函数的原因: 用于调用函数从函数返回的代码可能比实际执行这个小型计算工作所需要的时间更多。所以宏比函数在程序的规模速度方面更胜一筹。...宏的缺点: 当然函数相比宏也有劣势的地方: 每次使用宏的时候,一份宏定义的代码将插入到程序中。除非宏比较短,否则可能大幅度增加程序的长度。 宏是没法调试的。

7910

C语言程序环境预编译

---- ---- 一、程序的翻译环境运行环境 任何一个C语言程序在执行时,都会存在两个不同的环境。...2.开始执行程序: 开始调用main函数 (程序的入口) 3.开始执行程序代码: 这个时候程序将使用一个运行时堆栈(stack),也就是函数栈帧,来存储函数的局部变量返回地址。...二、预处理(预编译)阶段展开讲解 1.C语言内置预定义符号 __FILE__ 进行编译的源文件 __LINE__ 文件当前的行号 __DATE__ 文件被编译的日期 __TIME__...line=%d date:%s time:%s i=%d\n", __FILE__, __LINE__, __DATE__, __TIME__, i); } return 0; } 我们可以利用C语言的内置符号...,并且宏的内容是较长的话,那极有可能增加我们程序的长度,不容易走读代码调试。

59920

C语言进阶-程序环境预处理

目录 前言 程序的翻译环境执行环境 翻译环境 编译+链接 ​翻译阶段详解 预编译 编译 汇编 链接 运行环境 预处理详解 预定义符号 #define #define 定义标识符 #define 定义宏...头文件包含方式 嵌套文件包含 ---- 前言 ---- 本章主要讲解点: 代码编译链接变成可执行程序程序的过程 掌握学习各种预处理知识 程序的翻译环境执行环境 ---- 任何一个代码从源文件(.c...(.c文件)通过编译过程分别转换成目标代码(.obj文件) 链接: 每个目标文件由链接器(linker)捆绑在一起,形成一个单一而完整的可执行程序(.exe文件) 链接器同时也会引入标准C函数库中任何被该程序所用到的函数...,在独立的环境中程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成 调用main函数 执行程序代码:程序将使用一个运行时堆栈(stack),存储函数的局部变量返回地址;程序同时也可以使用静态...图片 宏函数命名约定 一般来讲函数的宏的使用语法很相似(语言本身没法区分二者) 约定的命名习惯: 宏名全部大写 函数名不要全部大写 #undef 作用: 用于移除一个宏定义

61450

C语言进阶——程序环境预处理

可以看出,整个代码运行逻辑是极其严谨巧妙的。除程序环境外,C/C++在预处理阶段还有各式各样的预处理指令等着我们去发掘,一起来看看吧!...宏:宏在预编译阶段就已经完成了代码的替换,在后面无需进行操作 因此对运行速度有追求的程序会大量使用宏 函数:函数在使用时,存在调用返回这两个操作,会造成额外的开销 C语言中函数调用需要经过一系列的操作...答:存在,且使用很频繁,比如下图为VS中某头文件的定义截图    2.7、文件包含   最后再来谈谈C语言中头文件的包含方式,分为自定义头文件库文件的包含 2.7.1、自定义头文件的包含   自定义头文件在包含时...推荐了解其他预处理指令 #error #pragma #line  …… ---- 总结   以上就是关于C语言程序环境预处理的所有内容了,如果你在看完此文后能对C语言代码的运行有一个新的认识,那么本文就值了...当然,只是C语言整体知识系列划上了句号,其他文章还是会继续更新下去的, 比如 数据结构 | C 这个系列,还有高深一些的 C语言高阶——函数栈帧的创建和销毁 ,其他好玩的小程序、有意义的题解等。

18420

c语言程序个位,C语言位字段

如果不适合的话,那么编译器就分配另外的内存单元,并在新单元的起始放置下一个位字段,或者跨过前一个内存单元的结尾下一个内存单元的开头。...下面的例子重新定义了结构类型 struct Date,让其成员 month day 只占据各自需要的位数。为了展示 _Bool 类型的位字段,我们为夏令时设定一个标签。...结构中其他成员所不同的是,位字段通常不会占据可寻址的内存位置,因此无法对位字段采用地址运算符(&)或宏 offsetof。...但是在其他方面,可以将位字段看作结构或联合成员,使用点箭头运算符来获取,并以类似对待 int 或 unsigned int 变量的方式对其进行算术运算。

12.2K10

第1章 程序设计C语言

(2)     结构化语言。QBASIC、FORTRAN77C语言等。 (3)     面向对象语言。...C++、C#、visual、Basic、java等 关于怎么快速学C/C++,可以加下小编的C/C++学习企鹅群:【870+963+251】不管你是小白还是大牛,小编我都欢迎,不定期分享干货,欢迎初学进阶中的小伙伴...每天晚上20:00都会开直播给大家分享C/C++游戏编程学习知识路线方法,群里会不定期更新最新的教程学习方法,最后祝所有程序员都能够走上人生峰,让代码将梦想照进现实 1.3 C语言的发展及其特点 C...7).用C语言编写的程序可移植性好 8).生成目标代码质量高,程序执行效率高 1.4 最简单的C语言程序 1.4.1 最简单的C语言程序举例 例,要求在屏幕上输入以下一行信息 Hello world...(6) 在每个数据声明语句的最后必须有一个分号 (7) C语言本身不提供输入输出语句 (8) 程序应当包含注释 1.5 运行C程序的步骤与方法 在编号一个C程序后,怎样上机进行编译运行呢?

1.3K40
领券