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

C语言编程规范

2018 /10 图片来源于网络 C语言入门到精通 公众号 闫小林 C是一门朴素的语言,它是大部分程序员的入门语言,那么C语言的常见编程规范都有哪些呢 1 头文件: 1.头文件中适合放置接口的声明...,不适合放置实现 2.头文件应向稳定的方向包含,产品依赖于平台,平台依赖于标准库 3. .c/.h文件禁止包含用不到的头文件 4.每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口...5.禁止头文件循环依赖 6.头文件应当自包含(任意一个头文件均可独立编译) 7.禁止在extern"C"中包含头文件 8.禁止在头文件中定义变量,如果头文件被其他文件包含,会引发重复定义 9.只能通过包含头文件的方式使用其他....c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量 10.如果一个模块包含多个子模块,则建议每一个子模块提供一个对外的.h,文件名为子模块名,降低接口使用者的编写难度 2 编码...C语言入门到精通 4 禁止内存泄漏: 1.异常出口处检查内存、定时器/文件句柄/Socket/队列/信号量/GUI等资源是否全部释放 2.删除结构指针时,必须从底层向上层顺序删除 3.使用指针数组时

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

    编程规范_这个星球上最好的C编程风格

    正文 首先说说为什么需要编程规范。 前面的两点我觉得大家都懂,就不说了。关于第三点,工程师文化传承,我有点感想,想分享下。 提到编程风格,我就想到了我的老东家YX。...老东家的编程风格是参考uCos,有的朋友喜欢Qt风格,有的喜欢苹果webkit。今天分享一个目前最流行的C编程规范。...接下来我带大家研究下谷歌的编程风格指南,并不是说它最好,只是给大家提供一个思路。 谷歌在github上开放了编程指南,除了C语言之外还有java,python,R语言等等。...这是谷歌C++编程风格指南Google C++ Style Guide。 为了方便大家,我也专门挑出了C语言相关的部分,并且翻译成了中文,这几天连着晚上加班熬了出来,放在我的github上。...最后 关于编程规范的其它部分,由于展示方式受限,PPT上不展开。 大家可以查看我翻译的C编程风格指南_C语言版。

    81510

    C语言编程语法—语法风格

    能发明这种写法的人,必定是了解了,在C语言中,如果一个函数不显式声明自己的返回值,那么会被缺省认为是int,但这一步是由编译器掌控,然而C语言设计之初便是让我们对一切尽可能的掌握,而一切不确定因子我们都不应该让它存在...int main(int argc, char* argv[]) 和 int main(void)才是我们该写的C语言标准形式对于缩进,除了编译器提供的符号缩进之外,我们可以自己给自己一个规范(请少用或者不用...对于学习C语言,请使用.c文件以及C语言编译器练习以及编写C程序,请不要再使用C++的文件编写C语言程序,并且自圆其说为了效率而使用C++的特性在C语言中,我们是祖国的下一代,是祖国的未来,请不要让自己毁在当下...,珍爱编程,远离清华大学出版社。...C语言程序,但是它能在C++个编译器下编译运行吗?

    17330

    C语言C++基本语句编程风格

    初学者阶段编程时,编写基本语句可能会有隐含错误的方式,基本语句主要针对if、for、while、goto、switch等,它们看似简单,但使用时隐患比较多,本文归纳了使用语句的一些规则和建议。...基本语句编程举例 if语句 if语句是C++/C语言中最简单、最常用的语句,然而很多编程人员用隐含错误的方式写if语句,本文以“与零值比较”为例,进行讨论。...= 0) 不可以模仿布尔变量的风格而写成: if(value) if(!value) //会让人误解value是布尔变量 (3)浮点变量与零值比较:不可以将浮点变量用“==”或“!...由于 goto 语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。 goto 语句经常带来错误或隐患。...如有不对留言指正 参考资料:林锐《 c/c++编程指南》

    2.1K10

    C语言编程规范 clean code

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

    4.5K10

    C语言编程规范 clean code

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

    5.5K10

    Google C++编程风格指南(四)之类的相关规范

    类是C++中基本的代码单元,自然被广泛使用。本节列举了在写一个类时要做什么、不要做什么。 1....使用继承的相关规范: (1)所有继承尽量使用public的,如果想私有继承的话,应该采取包含基类实例作为成员的方式作为替代。 (2)不要过多使用实现继承,组合通常更合适一些。...15.小结 关于类的注意事项和使用规范,总结一下: 不在构造函数中做太多逻辑相关的初始化; 编译器提供的默认构造函数不会对变量进行初始化,如果定义了其他构造函数,编译器不再提供,需要编码者自行提供默认构造函数...参考文献 [1] C++构造函数和析构函数中抛出异常的注意事项 [2]C++不要在构造函数和析构函数中调用虚函数 [3]百度文库.Google C++编码规范中文版 [4]李健.编写高质量代码...:改善C++程序的150个建议.第一版.北京:机械工业出版社,2012.1:287

    87421

    养良好C语言编程风格,编优质C语言代码,这才是C语言的开始

    个人c语言编程风格总结 总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的。首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的。...同样的,代码的质量也极大程度上反映了编程者的水平高低。为了让大家从学习的开始就养成良好的编程习惯,创作出优质的代码,实验室编辑这个文档,作为大家编程的参考,同时也是对以后编程风格的硬性规定。...对于一个团队来讲,制定统一的编程规范,好处是显而易见的。通常一个项目是由多个成员共同完成,在项目中,经常互相调用组内成员的代码。如果两个人的编程习惯和风格差异显著,那么将会浪费大量时间在读懂代码上。...相反,一致而良好的编程规范,会让合作开发变得轻松而高效。 众所周知,C语言是面向过程的语言。也就是说,程序员要对程序的每一步有精准的把握,知道每一条程序语句的执行内容及其结果。...况且本身我们的文档是为了在C语言语法、词法基础上,制定一个编程规范。 另外,有些老版本的C编译器允许用=+来代替+=的含义,即复合赋值号的两个符号顺序可以是反的。

    4K51

    Google C++编程风格指南(三)之作用域的相关规范

    1.名字空间(Namespaces) C++在C的基础上引入了名字空间机制,使C中作用域的级别从原有的文件域(全局作用域)和局部域(函数作用域和代码块作用域)中间增加了名字空间域和类域。...使用名字空间应该坚持以下几点规范: (1)推荐和提倡使用匿名名字空间 // .cpp文件中 namespace { // 命名空间的内容无需缩进 enum { UNUSED, EOF, ERROR...规范:不要将嵌套类定义为public,除非它们是接口的一部分,比如,某方法使用了返个类的一系列选项。...(2)对于全局的字符串常量,使用C风格的字符串,而不要使用STL的字符串 const char kFrogSays[] = "ribbet"; 虽然允许在全局作用域中使用全局发量,使用时务必三思。...+编码规范中文版.http://wenku.baidu.com/link?

    1.2K30

    Google C++编程风格指南(一)之头文件的相关规范

    1.背景 一个良好的编程规范风格是一名程序猿成熟的标志。规范的编码可以减少代码冗余,降低出错概率,便于代码管理和代码交流等等,事实上,其作用远不止这些,我们要牢记编码规范在心中啊。...Google C++编程指南的另一个观点是C++特性的臃肿。C++是一门包含大量高级特性的巨型语言,某些情况下,我们会限制甚至禁止使用某些特性使代码简化,避免可能导致的各种问题。...注意:Google C++编程指南并非C++教程,读者需对对C++有较好的基础和编程经验。...2.3.2包含头文件的顺序 详情可参考本人的另一篇博客Google C++编程风格指南之头文件的包含顺序。 这里简要说明一下Google C++推荐的头文件包含的顺序。...---- 参考文献 [1]Google C++编程风格指南之头文件的包含顺序 [2]百度文库.Google C++编码规范中文版 [3]C++接口类 [4]linux系统编译C++程序时头文件和库文件搜索路径

    2.9K10

    Java开发编程规范: 1.命名风格

    一.前言        这几天学习java写了一些东西,代码有问题,就拿去问老师,把代码发给老师后,老师批评说我写的代码不规范,即使代码可以实现相应的功能,但是企业依旧不会使用你的代码,你拥有的仅仅是编程基础...,老师不止一次告诉我,让我去学习编程规范,我觉得也是时候学习一波了,不知道各位读者有没有这种体验啊,比如一个QQ群,有萌新问你这个代码有什么问题,很多人想去帮忙,却不知道写的什么,才会一点一点问,这个方法是干什么的...当我们自己写代码的时候,我们当时是知道这个变量是干什么的,哪怕是一个a,一个b,因为那是你写的,你不可能那么快忘记,但是换另一个人来读你的代码,就需要从头重新刷你的代码,曾几何时,我的变量也是a,b,c,...二.命名风格 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。...【推荐】为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词 组合来表达其意。

    81131

    这才是理想中的 C 语言编程规范

    今天找了一篇编码规范分享大家,可以规避掉很多bug~ “简 介: 本文分析在头条上分享GitHub上一位老外的嵌入式C编码规范(收藏细读):嵌入式大杂烩。...关键词: 嵌入式,C语句,编程规范” 分享GitHub上一位老外的嵌入式C编码规范(收藏细读)[1] 01 最重要的规则 编写代码时最重要的一条规则是:检查周围的代码并尝试模仿它。   ...作为维护人员,如果收到的补丁明显与周围代码的编码风格不同,这是令人沮丧的。这是不尊重人的,就像某人穿着泥泞的鞋子走进一间一尘不染的房子。   ...这是为C语言本身保留的 对于严格的模块私有函数,使用prv_ name前缀 对于包含下划线_ char的变量/函数/宏/类型,只能使用小写字母 左花括号总是与关键字(for, while, do, switch...ifdef __cplusplus } #endif /* __cplusplus */ #endif /* TEMPLATE_HDR_H */ 参考资料 [1] 分享GitHub上一位老外的嵌入式C编码规范

    2.5K20

    C语言编码规范

    1-排版规则 程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶格书写; 源程序建议使用英文书写,尽量不含有中文。每行不超过80字符。...形参的排序风格: 最常使用的参数放在第一位; 输入参数列表应放在输出参数列表的左边; 将通用的参数放在特殊的参数的左边。...2-命名规范 应用程序的命名 “系统简称”+模块名称 子模块的命名 每个子模块的名字应该由描述模块功能的1-3以单词组成。每个单词的首字母应大写。在这些单词中可以使用一些较通用的缩写。...源程序头的注释和规范 每个源程序(包括存储过程)必须有头部说明、版本说明和函数结构三个部分: 源程序头部说明 FileName: Copy Right: System: Module: Function...本文件所在的功能模块名称 简要说明本程序的功能 相关详细设计文档号 编码人员 创建日期 源程序版本说明 Editor: Version: Edit Date:修改人员 版本号 修改日期 4.2 函数头的注释和规范

    2.3K20

    单片机开发之C语言编程基本规范

    规范主要针对单片机编程语言和08编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。...1.基本规则 格式清晰、注释简明扼要、命名规范易懂、函数模块化、程序易读易维护、功能准确实现、代码空间效率和时间效率高、适度的可扩展性、单片机编程规范-标识符命名 2.标识符命名 2.1 命名基本原则...4) 规范/可读性:程序书写风格、命名规则等符合规范。 5) 扩展性:代码为下一次升级扩展留有空间和接口。 6) 全局效率:软件系统的整体效率高。...单片机编程规范-排版 5.1 缩进 代码的每一级均往右缩进4个空格的位置。不使用Tab键 5.2 分行 每行语句(?????...3) typedef和#define的用法 ① typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像

    1.8K20

    C语言命名规范

    C是一门朴素的语言,你使用的命名也应该这样。然而,当面对复杂情况时就有些棘手,给全局变量取一个描述性的名字是必要的。把一个全局函数叫做“foo”是一种目光短浅的行为。...自己特有的命名风格,要自始至终保持一致,不可来回变化。个人的命名风格,在符合所在项目组或产品组的命名规则的前提下,才可使用。(即命名规则中没有规定到的地方才可有个人命名风格)。...命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。...即:c_+变量命名规则;示例:const char* c_szFileName; 4-函数的命名规范 函数的命名应该尽量用英文(或英文缩写、中文全拼、中文全拼缩写)表达出函数完成的功能——函数名应准确描述函数的功能...如:……cmCopyString(const CHAR * c_szSource, CHAR * szDest) 6-文件名 (包括动态库、组件、控件、工程文件等)的命名规范文件名的命名要求表达出文件的内容

    2.7K20
    领券