首页 > 编程语言 >高质量C/C++编程指南总结(一)—— 文件结构

高质量C/C++编程指南总结(一)—— 文件结构

时间:2024-07-14 12:21:16浏览次数:15  
标签:文件 头文件 定义 编程 高质量 C++ include 目录

1. 版权和版本的声明应位于头文件和定义文件的开头,主要包括的内容有:

  • 版本信息。
  • 文件名称、文件标识、摘要。
  • 当前的版本号、作者/修改者、完成日期。
  • 历史版本信息(取代版本、原作者、完成日期)。

2. 头文件结构

  • 为了防止头文件被重复引用,应当使用 ifndef/define/endif 结构产生预处理块。
  • 用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
  • 用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
  • 头文件中只存放“声明”而不存放“定义”。C++中的内联函数也应定义在类外,与函数声明分开,统一风格。
  • 不提倡使用全局变量, 尽量不要在头文件中出现象 extern int value 这类声明。

3.目录结构

  • 如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保存于不同的目录,以便于维护。例如可将头文件保存于 include 目录,将定义文件保存于 source 目录(可以是多级
    目录)。
  • 如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。

标签:文件,头文件,定义,编程,高质量,C++,include,目录
From: https://www.cnblogs.com/moyu557/p/18301335

相关文章

  • 深入解析C++中的特殊成员函数:构造函数、析构函数、拷贝构造函数与赋值操作符
    深入解析C++中的特殊成员函数:构造函数、析构函数、拷贝构造函数与赋值操作符在C++编程的浩瀚宇宙中,构造函数、析构函数、拷贝构造函数和赋值操作符是构成对象生命周期和行为的四大基石。它们各自扮演着不可或缺的角色,确保了对象从创建到销毁,从复制到赋值的整个过程既安全又......
  • OpenFlow 是一个网络通信协议,它允许网络管理员通过中央控制器(如 OpenFlow 控制器)来编
    OpenFlow是一个网络通信协议,它允许网络管理员通过中央控制器(如OpenFlow控制器)来编程定义网络中的数据包转发行为。OpenFlow协议通常用于软件定义网络(SDN)架构中,其中网络控制平面与数据转发平面是分离的。在Python中,直接编写与OpenFlow交换机交互的代码通常涉及使用......
  • C++查找最大元素与s.find()和s.insert()
    题目描述:m老师在学习字符串的时候,对于字符串中的最大字符很感兴趣。因此他想对于输入的每个字符串,查找其中的ASCII码最大字母,在该字母后面插入字符串“(max)”。输入描述输入数据包括多个测试实例,第一行输入一个整数n表示样例个数。每个实例由一行长度不超过100的字符串......
  • C++ STL常用容器之vector(顺序容器)
    文章目录前言一、vector的介绍1.1vector的优点1.2vector的缺点1.3使用场景二、vector常用的操作2.1创建、初始化以及遍历容器2.2查询容器大小2.3访问容器中的元素2.4往容器中添加元素2.5删除容器中的元素2.6清空容器中的元素总结前言本文主要介绍C++STL......
  • C++ //练习 14.44 编写一个简单的桌面计算器使其能处理二元运算。
    C++Primer(第5版)练习14.44练习14.44编写一个简单的桌面计算器使其能处理二元运算。环境:LinuxUbuntu(云服务器)工具:vim 代码块/************************************************************************* >FileName:ex14.44.cpp >Author: >Mail: >C......
  • Android C++系列:Linux常用函数和工具
    1.时间函数1.1文件访问时间#include<sys/types.h>#include<utime.h>intutime(constchar*name,conststructutimebuf*t);返回:若成功则为0,若出错则为-1如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间;如果times是非空指针,则存取时......
  • Android C++系列:Linux进程间关系
    1.终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal),在前面文章我们说过,控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况......
  • C++ //练习 15.5 定义你自己的Bulk_quote类。
    C++Primer(第5版)练习15.5练习15.5定义你自己的Bulk_quote类。环境:LinuxUbuntu(云服务器)工具:vim 代码块/************************************************************************* >FileName:ex15.3.cpp >Author: >Mail: >CreatedTime:Fri12J......
  • C++ //练习 15.7 定义一个类使其实现一种数量受限的折扣策略,具体策略是:当购买书籍的数
    C++Primer(第5版)练习15.7练习15.7定义一个类使其实现一种数量受限的折扣策略,具体策略是:当购买书籍的数量不超过一个给定的限量时享受折扣,如果购买量一旦超过了限量,则超出的部分将以原价销售。环境:LinuxUbuntu(云服务器)工具:vim 代码块/**************************......
  • Epson机器人编程初级阶(一)
    EPSON控制柜类型:RC700可控制,除一体机和LS系列以外的所有机型。RC90为LS系列专用控制器。 机器人系统具有三种操作模式:TEACH,AUTO,TSETTEACH:该模式可电动机器人及示教电位置,机器人将在低速率下运行AUTO:外部TSET:调试 机器人常用控制指令:关节插补:GO,JUMP直线插......