`
ah_fu
  • 浏览: 228001 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

C++学习笔记:头文件互引用引起的编译器错误

阅读更多

    如果有两个头文件:a.h和b.h,在a.h中引用b.h,然后在b.h中引用a.h。然后在一个c.cpp文件同时引用这两个头文件,编译c.cpp,哈哈,看见GCC就这样引用来引用去,CPU占了100%,进入了死循环。 
    一般情况下当然很容易检查出这样的问题,但是大项目中就可能存在头文件们绕了一个大圈,最后还是相互包含了的情况,编译器显示些奇怪的错误,根本无法从错误信息定位到原因。

    解决的办法还是最简单的
#ifndef _XXX_H_
#define _XXX_H_
//code
#endif

   这样就算头文件相互包含,也不会发生问题了。可见,这种基本的东西,一定一定要加上!

分享到:
评论

相关推荐

    c++学习笔记精华版

    ### C++ 学习笔记精华版 #### 一、C++ 语言概述 **1、历史背景** - **C++ 的江湖地位** - Java、C、C++、Python、C# 是当前主流的编程语言之一,而 C++ 在这些语言中以其高效性和灵活性著称。 - **C++ 之父 ...

    c++学习笔记(个人学习时做的笔记)

    【C++学习笔记概述】 C++是一门强大的编程语言,其在C语言的基础上进行了扩展,引入了许多现代化的特性。这份笔记主要涵盖了C++的基础知识,包括C++11和C++17的新特性,旨在帮助初学者理解C++的核心概念。 ### C++...

    c++学习笔记.pdf

    标题中的"C++学习笔记.pdf"表明文档是一份关于C++语言的学习记录。C++是一种广泛使用的编程语言,由Bjarne Stroustrup在1980年代初开发,它是一种静态类型、编译式、通用编程语言。C++支持多范式编程,包括过程化、...

    C++学习笔记.pdf

    - **C++与标准规范**:学习的C++版本应该遵循ANSI规范,这样编写的代码具有更好的可移植性,可以在不同的操作系统和硬件平台上运行而无需进行大量修改。 ### 编译与连接过程 - **开发周期**:源程序经过一系列步骤...

    C++学习笔记 C++学习笔记

    【C++语言基础】 C++是一种强类型、面向对象的编程语言,遵循ANSI标准,具有高度的可移植性。...随着学习的深入,还将涉及到类、对象、模板、异常处理、内存管理等更复杂的概念,这些都是C++强大功能的核心。

    c++primer 学习笔记

    这篇学习笔记主要涉及了C++编程的一些核心概念,包括程序结构、变量、基本类型、初始化与赋值、可读性、常量与引用、typedef、枚举以及标准库中的字符串和向量类型。 1. **程序结构**: - 每个C++程序都必须包含`...

    C++学习笔记

    - 反之,由于C++引入了许多新的特性,部分C++代码可能无法在纯C编译器中正确编译。 3. **标准输入输出**: - C语言使用`<cstdio>`头文件,并通过`printf()`和`scanf()`等函数进行输入输出操作。 - C++使用`...

    C++primer笔记

    ### C++ Primer 笔记知识点概述 ...以上是对C++ Primer笔记中涉及的知识点的详细总结,涵盖了文件类型、预处理器指令、注释、数据类型及内存管理等方面的基础知识,对于初学者来说是非常宝贵的学习资源。

    C++学习笔记 程序结构

    C++程序结构的知识点涵盖了从源代码到可执行程序的整个编译过程,以及C++程序的基础架构和入口函数main()的具体用法。以下详细知识点: 1. C++程序的编译过程: C++的编译过程通常包括预处理、编译、链接三个阶段。...

    c++学习笔记

    ### C++学习笔记知识点概述 #### 一、C++程序结构与命名规范 - **文件命名规则**:C++程序的文件通常分为两类,一类是**头文件**(以`.h`作为后缀),另一类是**源文件**(以`.cpp`作为后缀)。 - **头文件**用于...

    《C++编程思想》学习笔记

    《C++编程思想》的学习笔记主要涵盖了对象的创建与使用,同时也涉及了语言的翻译过程,包括解释器和编译器的工作原理。本章节详细介绍了C++编程的基础知识,包括编译过程、静态类型检查、分段编译工具的使用,以及...

    C++笔记:第二章 数据变量和计算

    这是因为变量名本质上是程序内存中存储数据的标识符,C++编译器通过这些标识符来区分和管理内存中的数据。变量的声明和定义是创建变量的过程,通常情况下声明的同时也定义了变量,如`int value;`这样的语句既是声明...

    C++语法学习笔记(至六十一)

    这篇学习笔记主要涵盖了C++的基础知识,包括函数定义、头文件、注释、名称空间、常量、变量、进制转换、基本类型以及常用函数的使用。 1. **函数定义**: 函数是C++中组织代码的基本单元。`main()`是每个C++程序的...

    C++primer 学习笔记

    ### C++ Primer 学习笔记知识点汇总 #### 第1章 快速入门 - **程序编写的基本步骤**:首先,定义数据结构以保存所需数据,随后定义函数来封装功能,接着定义变量以存储数据,然后实现处理逻辑,最后实现输入输出...

    (转)一个优秀的C++学习笔记

    ### (转)一个优秀的C++学习笔记 #### 经验之谈 - **数组使用需谨慎**:在处理数组时,特别需要注意下标的操作。数组越界是编程中常见的错误之一,可能导致程序崩溃或者未定义行为。对于数组的访问应该始终保持在...

    C++&C学习笔记

    ### C++&C学习笔记知识点概览 #### 类与数据抽象 - **概念**:类是一种用户自定义的数据类型,它将数据(属性)和作用于数据上的操作(方法)封装在一起,从而实现了数据的抽象。 - **特点**:与C语言中的结构体...

Global site tag (gtag.js) - Google Analytics