C++中防止头文件重复包含处理办法

这篇具有很好参考价值的文章主要介绍了C++中防止头文件重复包含处理办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先给出可以拷贝的模板:

#ifndef _ADDNUM_H_
#define _ADDNUM_H_
  这里加上相应的函数声明即可
#endif

_ADDNUM_H_是头文件名称的大写,.h转换成_H,前后再加上_即可

在小型项目中,如果将函数的定义写在main函数的后面,那么需要在main函数前面加上这个函数的声明才可以顺利运行成功。

#include <iostream>
using namespace std;

int addNum(int a, int b);//函数声明
int main() {
	cout << addNum(3, 4) << endl;

	return 0;
}

int addNum(int a, int b) {
	return a + b;
}

当然如果你不想写函数声明也可以,将函数的定义放在main函数前面即可。

#include <iostream>
using namespace std;

int addNum(int a, int b) {
	return a + b;
}

int main() {
	cout << addNum(3, 4) << endl;

	return 0;
}

但是在大项目中一般不会这么写,那得多少个函数声明是不。在实际开发大项目中,一般不同的模块是由不同的程序员来开发的,函数的定义自己保留即可,别人只关注你提供的功能接口,也即别人不关心你产品的具体结构,你只需要给个说明书就好了。假设上面的addNum函数是由我开发的,我写好一个addNum函数,再写一个头文件addNum.h,一般约定俗成头文件文件名与对应的.cpp文件同名。
C++中防止头文件重复包含处理办法
以上结构都懂的,不做解释啦。其中addNum.h头文件也没有问题,但是会有一个重复的问题,有时候在源码中写了多次头文件的引入,大型项目中会存在这种可能性的,因为头文件太多了。
C++中防止头文件重复包含处理办法
那这个时候势必会报错,解决方案如下:
有两种,第一种是微软推荐的方法:在头文件前面加上#pragma once,但他只在VS编译器中支持,其他编译器是不支持的。
第二种方式也是大项目中常用的,如下:

#ifndef _ADDNUM_H_
#define _ADDNUM_H_
int addNum(int a, int b);
#endif

_ADDNUM_H_也是约定俗的写法,是头文件的全部大写,再加上_下划线即可

C++中防止头文件重复包含处理办法文章来源地址https://www.toymoban.com/news/detail-480954.html

到了这里,关于C++中防止头文件重复包含处理办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 防止重复提交请求

    前景提要: ts 简易封装 axios,统一 API 实现在 config 中配置开关拦截器 axios 实现请求 loading 效果 用一个数组保存当前请求的 url,此时还未响应。如果再次发起同样请求,比对 url 发现已经存在数组中,则拦截请求,提示重复提交。当该请求响应结束后,就将 url 从数组中剔除

    2024年02月06日
    浏览(39)
  • 前端如何防止接口重复提交

    接口重复提交指的是在网络通信中,同一个请求被客户端多次发送到服务器端的情况。这种情况可能由于多种原因导致,例如用户在等待期间多次点击提交按钮、网络超时后客户端重新发送请求、客户端发送的请求在网络传输过程中出现重复等。 接口重复提交可能会导致多种

    2024年04月22日
    浏览(35)
  • 如何防止订单重复支付

    想必大家对在线支付都不陌生,今天和大家聊聊如何防止订单重复支付。 看看订单支付流程 我们来看看,电商订单支付的简要流程: 订单钱包支付流程 从下单/计算开始: 下单/结算 :这一步虽然不是直接的支付起点,但是支付相关的金额等等信息都来自结算,此时订单的

    2024年02月05日
    浏览(42)
  • 微信小程序防止重复提交

    微信小程序在真机测试时,遇到这样一种情况:当网络条件差或卡顿的情况下,进行某项操作时,使用者会认为点击无效而进行多次点击,致使多次跳转页面或多次上传同一表单,导致函数或接口被多次调用,实际上使用者只想调用函数和接口一次。 添加节流阀,即按下按钮

    2024年02月13日
    浏览(49)
  • 聊聊大厂都怎么防止重复下单?

    一、问题背景 最简单的:DB 事务。如创建订单时,同时往订单表、订单商品表插数据,这些 Insert 须在同一事务执行。 Order 服务调用 Pay 服务,刚好网络超时,然后 Order 服务开始重试机制,于是 Pay 服务对同一支付请求,就接收到了两次,而且因为轮询负载均衡算法,落在了

    2024年02月11日
    浏览(44)
  • java防止重复提交的方法

      为了防止重复提交,可以采用以下几种方法: 1. 令牌机制(Token) 在表单中添加一个隐藏字段,用于存放一个随机生成的令牌(Token)。当用户提交表单时,将令牌一起提交到服务器。服务器接收到请求后,首先检查令牌是否存在,如果不存在则拒绝请求;如果存在,则将

    2024年02月01日
    浏览(39)
  • Cracking C++(1): 头文件包含

    准备开一个新的系列, cracking c++。是看 https://hackingcpp.com/ 这个网站的相关学习记录。 本文是第一篇,是学习C++中 #include 的用法。这里假定读者知道可以用 -I 参数来告诉 g++/clang++ 搜索路径。 C++ 的 hello world 程序如下: 本文只考虑第一行代码 #include iostream 的理解。 #include 是

    2024年02月08日
    浏览(34)
  • chatGPT给出Python time.sleep()假死(挂起)的解决办法

    最近,使用chatGPT帮着写程序,完成通过API获取天气数据的程序,运行起来后出现了状况:莫名其妙的的假死(程序被挂起来,不执行了),而且在Linux环境中更容易挂起。 程序详见作者的博文” 使用chatGPT开发获取格点天气数据“。 起初,我的目的是开发个近期使用,临时获

    2024年02月06日
    浏览(43)
  • SpringBoot 整合redis + Aop防止重复提交 (简易)

    redis下载 解压 安装 看一下就会有  进入redis-6.0.8下的src目录 (  src 目录下有编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:) 然后启动 redis默认端口号 6379,建议更改。redis.conf是配置文件在  与src是同级目录。 要远程  #去掉保护模式,注释掉bi

    2024年02月12日
    浏览(41)
  • 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

    输入 第一行包含一个整数 n 。 第二行包含 n 个非负整数,为给定的数列,数列中的每个数都不大于 10000 。 第三行包含一个整数 a ,为待查找的数。 输出 如果 a 在数列中出现了,输出它第一次出现的位置(位置从 1 开始编号),否则输出 -1 。 测试说明 样例输入: 6 1 9 4 8 3

    2024年02月04日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包