首页 > 编程语言 >C/C++ include 头文件的语句中,双引号和尖括号的区别

C/C++ include 头文件的语句中,双引号和尖括号的区别

时间:2023-06-13 14:00:49浏览次数:62  
标签:头文件 双引号 C++ 编译器 include 目录 尖括号

#include 指令有两种使用形式

#include <stdio.h> 文件名放在尖括号中

#include “mystuff.h” 文件名放在双引号中

 

双引号"xxx.h",表示编译器先在用户的工作目录下搜索头文件,如果搜索不到则到系统默认目录下去寻找,所以双引号一般用于包含用户自己编写的头文件。如:#include "student.h"

尖括号<xxx.h>,表示编译器只在系统默认目录或尖括号内的工作目录下搜索头文件,并不去用户的工作目录下寻找,所以一般尖括号用于包含标准库文件,如:#include <stdio.h>

实际看就是双引号会同时搜索依赖库和用户文件,只是优先搜索用户文件;尖括号则仅搜索依赖库。--所以倘若有规范的话,通过库依赖引用应该使用尖括号,可避免同名引用故障。

 

1.#include <xxx.h>
系统自带的头文件用尖括号括起来,这样编译器只会在系统文件目录下查找

2.#include "xxx.h"
用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找,然后在到C++安装目录(比如VC中可以指定和修改库文件查找路径,Unix和Linux中可以通过环境变量来设定)中查找,最后在系统文件中查找。

 

标签:头文件,双引号,C++,编译器,include,目录,尖括号
From: https://www.cnblogs.com/bluestorm/p/17477314.html

相关文章

  • c++ linux基础学习第一课
    课程目标:1.shell命令解析器shell就是命令解析器,将用户命令翻译成内核能够识别的指令。shell常用的快捷键:tab:补齐命令,补齐文件(包括目录和文件)ctrl+a光标移动到头部,ctrl+e光标移动到尾部2.linux下主要目录:/bin保存着二进制文件、可执行程序和shell命令/sbins是superu......
  • C++ Windows.h max宏与std::max冲突问题解决
    C语言引入的宏支持了一定程度的元编程,但它仅仅是简单的字符串替换,这种“六亲不认”的操作很容易导致一些编译错误。这篇文章介绍了一种场景:项目同时引入了老的C头文件,里面用宏定义了一些宏函数;还引入了C++的头文件,里面用其他方式定义了一些同名函数。具体到问题本身,这个......
  • Linux打包C++应用deb脚本
    目录结构├──CMakeLists.txt├──README.md├──scripts│  └──build_deb.sh├──src│  └──app.cpp└──VERSION打包脚本#!/bin/bashPROJECT_NAME="my-app"PROJECT_PATH=$(cd"$(dirname${BASH_SOURCE[0]})";cd..;pwd)MAINTAINER="jojo......
  • C/C++学习(10)关于数组、内联函数、虚函数的错题集锦
    1、顺序存储方式不仅用于存储线性结构,还可以用于存放非线性结构,如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。 2、数组名有两重属性:1)数据结构的一个对象(数据结构为当前数组),在java中数组就是一个对象。2)某些情况下自动退化成指向第一个元素的常量指针。 3、有两......
  • C++中虚拟继承问题
    #include<iostream>usingnamespacestd;classA{public: A(char*s){ cout<<s<<endl; } ~A(){}};classB:virtualpublicA{public: B(char*s1,char*s2):A(s1){ cout<<s2<<endl; }};classC:virtualpublicA{publi......
  • C++学习(65)
    1关于new运算符,错误的是DA可以用来动态创建对象和对象数组B使用它创建的对象和对象数组可以使用运算符delete删除C使用它创建对象时要调用构造函数D使用它创建对象数组时必须指定初始值分析:D可以不指定初始值,调用默认构造函数进行默认初始化。int*x=newint();//不传值,默认初始化......
  • C++地址值为1(情况说明)
    关于C++中地址值打印出来为1的情况;以下是测试代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){constvolatileinta=10;cout<<&a<<endl;int*p=(int*)&a;*p=12;cout<......
  • C++面试八股文:static和const的关键字有哪些用法?
    C++面试八股文:static和const的关键字有哪些用法?某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:面试官:C++中,static和const的关键字有哪些用法?二师兄:satic关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。2.方法内修饰修饰静......
  • C++面试八股文:了解位运算吗?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第12面:面试官:了解位运算吗?二师兄:了解一些。(我很熟悉)面试官:请列举以下有哪些位运算?二师兄:按位与(&)、按位或(|)、按位异或(^),按位取反(~)、左移(<<)和右移(>>)。面试官:好的。那你知道位运算有什么优势吗?二师兄:优势主要有两点:1.速度快。2.节......
  • c++ create daemonizeMe
    daemonizeMe//Copyright(c)2017DeepAggarwal#include<getopt.h>#include<grp.h>#include<pwd.h>#include<stdlib.h>#include<syslog.h>#include<sys/stat.h>#include<sys/types.h>#include<unistd.h>#include......