c语言编程规范第三部分

news2024/11/14 14:09:51

3、头文件应向稳定的方向包含 头文件的包含关系是一种依赖,一般来说,应当让不稳定的模块依赖稳定的模块,从而当不稳定的模块发生变化时,不会影响(编译)稳定的模块。就我们的产品来说,依赖的方向应该是:产品依赖于平台,平台依赖于标准库。某产品线平台的代码中已经包含了产品的头文件,导致平台无法单独编译、发布和测试,是一个非常糟糕的反例。除了不稳定的模块依赖于稳定的模块外,更好的方式是两个模块共同依赖于接口,这样任何一个模块的内部实现更改都不需要重新编译另外一个模块。在这里,我们假设接口本身是最稳定的。

4、每一个 .c 文件应有一个同名 .h 文件,用于声明需要对外公开的接口如果一个.c文件不需要对外公布任何接口,则其就不应当存在,除非它是程序的入口,如main函数所在的文件。现有某些产品中,习惯一个.c文件对应两个头文件,一个用于存放对外公开的接口,一个用于存放内部需要用到的定义、声明等,以控制.c文件的代码行数。编者不提倡这种风格。这种风格的根源在于源文件过大,应首先考虑拆分.c文件,使之不至于太大。另外,一旦把私有定义、声明放到独立的头文件中,就无法从技术上避免别人include之,难以保证这些定义最后真的只是私有的。

4d38fe967ed945cfb2d066153c282f43.png

今日学习寄语:

1、最累的时候,家人是你最好的归宿。

  2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。

  3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。

  4、程序不是年轻的专利,但是,他属于年轻。

  5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。

  6、一个好汉三个帮,程序员同样如此。

  7、一个100行的代码调试都可能会让程序员遇到很多挫折,所以,面对挫折,我们永远不能低头。

  8、调试完一个动态连接函数,固然值得兴奋,但真正的成功远还在无数个函数之后。

  9、程序是我的生命,但我相信爱她甚过爱我的生命。

  10、信念和目标,必须永远洋溢在程序员内心。

  11、就算我们站在群山之颠,也别忘记雄鹰依旧能从我们头顶飞过。骄傲是比用Java进行底层开发更可笑的东西。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据复制 软件 SnapMirror:统一复制,更快恢复

数据复制 软件 SnapMirror:统一复制,更快恢复 预测未知领域是一项棘手的工作。让 SnapMirror 软件来处理则轻松得多。 通过数据的高可用性和快速数据复制,可即时访问业务关键型数据。放松一下,它会让你满意的。 为什么用 SnapMi…

3D目标检测(一)—— 基于Point-Based方法的PointNet系列

3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 目录 3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 前言 零、网络使用算法 …

AQS与Synchronized异曲同工的加锁流程

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。 AQS全称…

c++函数对象(仿函数)、谓词、内建函数对象

1、函数对象 1.1 概念 重载函数调用操作符的类,这个类的对象就是函数对象,在使用这个函数对象对应使用重载的()符号时,行为类似于函数调用,因此这个函数也叫仿函数。 注意:函数对象&#xff0…

多个任务并行的时候,你是否总是会手忙脚乱?

很多重要事情之所以变得迫在眉睫,需要立刻处理、应付,是因为被延误或没有进行足够的预防和准备,筹划。 面对多个任务并行的时候,你是否总是会手忙脚乱? 在项目工作中,管理者每天要面对各种工作&#xff…

移动WEB开发二、流式布局

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

【Linux】线程函数和线程同步详细整理(金针菇般细)

目录 一,线程函数 1.获取当前线程ID 2.创建线程 3.退出线程 4.阻塞线程 5.分离线程 6.取消线程 7.线程比较 8.测试代码(线程函数总结) 二,线程同步 1.互斥锁 2.读写锁 3.条件变量 4.信号量 一,线程函数 …

【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流。 目录问题描述数据处理过程及源码通过数据可视化分析数据训练线性回归模型可视化训练好的线性回归模型结果预测问题描述 你所在的公司在电视上做产…

mybatis狂神(附自学过程中疑问解决)

首先先附上mybatis的官方文本链接mybatis – MyBatis 3 | 简介一、Mybatis介绍MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来…

Comparator和Comparable的区别以及Collections.sort排序原理

一、概述 Comparable和Comparator都是两个接口,接口都可以用来实现集合中元素的比较、排序,Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而Comparator既可以嵌…

非标题党:前端Vue React 项目编程规范化配置(大厂规范)

前端项目编程规范化配置 下述例子主要是从 代码规范化 以及 git 提交规范化 两方面进行配置。内容很多,请做好心理准备 一、代码检测工具 ESLint 在我们通过 vue create “项目名” 时,我们可以通过手动配置的方式,来配置 ESLint 来对代码进…

QDateTime的11种显示方式

QDateTime datetime QDateTime::currentDateTime(); datetime.toString(“hh:mm:ss\nyyyy/MM/dd”); datetime.toString(“hh:mm:ss ap\nyyyy/MM/dd”); datetime.toString(“hh:mm:ss\nyyyy-MM-dd”); datetime.toString(“hh:mm:ss ap\nyyyy-MM-dd”); datetime.to…

【分享】订阅用友YonSuite集简云连接器同步销售出库数据至用友YonSuite

方案场景 在企业中因多种系统孤立导致数据割裂,是现企业中现阶段面临的最大问题,而钉钉作为常用的OA审批系统,用友YonSuite作为ERP系统,原方式钉钉内完成审批再由人工将数据同步到用友YonSuite系统,数据同步过程中不仅…

将HTTP接口配置成HTTPS

一、使用Java的keytool.exe程序生成本机的TLS许可找到Java的jdk目录进入bin默认安装路径C:\Program Files\Java\jdk1.8.0_91\bin 进入命令面板,在bin的路径栏中输入cmd敲击回车即可使用keytoolkeytool -genkeypair -alias tomcat_https -keypass 123456 -keyalg RSA…

linux线程的基本知识

这里用的是Linux的pthread线程库,需要加pthread线程库。 线程的创建 第一个参数是线程id的地址。第二个参数是线程属性,一般为NULL。第三个是要执行的函数。第四个是函数的参数,一般也为NULL 线程的等待,第一个参数是线程的id,第…

VBA提高篇_27 OptionBOX_CheckBox_Frame_Image_VBA附加控件

文章目录1.单选按钮OptionBOX:2.复选框CheckBox:3.框架Frame:4.图像Image: (loadPictrue)5. VBA附加控件:6. 适用于很多控件的重要属性:1.单选按钮OptionBOX: 默认时,同一窗体的所有单选按钮均属于同一组,只能选中一个 可通过Frame控件进行分组解决. 2.复选框CheckBox: 一次可以…

备考软考系统分析师-1

系统分析师教程网盘资源:链接: https://pan.baidu.com/s/1ekHuCJJ3o5RrW1xeMkxhdA 提取码: 6666 信息系统战略规划 信息系统开发方法: 结构化法 瀑布模型 原型法 自顶向下 用于需求阶段较多 面向对象 自底向上 面向服务的方法 系统建模 政府信息…

在Excel接入 chatgtp (图文教学)

效果图 话不多说,开始教学 首先点击插入,然后点击获取加载项 office Excel 加载加载项时出错 解决办法_long_songs的博客-CSDN博客今天在添加维基百科的时候,怎么都添加不了,网上的办法都是关闭,重启,或者…

[架构之路-114]-《软考-系统架构设计师》-软件架构设计-7-软件架构评估

前言第7节 软件架构评估7.1 什么是架构评估/为什么要软件架构评估在软硬件系统总体架构设计完成之后,为保证架构设计的合理性、完整性和针对性,从根本上保证系统质量,降低成本及投资风险,需要对总体架构进行评估。7.2 软件架构评估…

word高效技巧:几个快速填充表格的操作方法

我们办公人员在面对大量表格数据的时候,都希望以最简便、快捷的方式完成对数据的填充、美化等整理工作。比如,日常工作中几种常用的Word表格填充类型:1. 填充序号;2. 填充文本;3. 填充颜色。因此,接下来给大…