首页 > 编程语言 >【c&c++】include的作用

【c&c++】include的作用

时间:2022-11-17 14:33:06浏览次数:40  
标签:文件 包含 stdio 路径 c++ 文件夹 include 作用

#include发生在预处理阶段,整个编译链接过程,#include是最简单的了,没有之一。就是在include的位置直接把文件原原本本完完整整一字不落的包含进来,下面举一个极端点的例子:

//file a.c

#include <stdio.h>
int d = 3;
#include "b"

//a.c end

//file b

main(){
printf("d = %d\n",d);

}

//b end

所以include后,源程序变为

//file a.c
#include <stdio.h>
int d = 3;
main(){
printf("d = %d\n",d);

}

2.关于c语言中#include 路径查找问题

1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来。例如以下写法都是允许的:
    #include"stdio.h"
    #include<math.h>
    但是这两种形式是有区别的:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时    设置的),而不在源文件目录去查找;
    使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。用户编程时可根据    自己文件所在的目录来选择某一种命令形式。
2. 一个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。
3. 文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。

 

1.include<头文件名>和include"头文件名"

如:include<stdio.h>和include"stdio.h"

前者(使用<>),来引用stdio.h文件,是首先检索标准路径,看看这些文件夹下是否有该头文件;如果没有,也不会检索当前文件所在路径,并将报错。

后者(使用""),来引用stdio.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。

2.linux下,上述标准路径有:/usr/include,/usr/local/include。

3.<sys/头文件名>。如<sys/io.h>,<net/ethernet.h>等。其中,前面的字符串(如sys,net)表示标准路径下的文件夹名,后面的字符串(如io.h,ethernet.h),表示在linux标准路径下的各文件夹下的头文件名,如sys文件夹下的io.h文件,即我们可以在/usr/include/sys目录下发现io.h文件。

linux博大精深,需要慢慢积累。

4.如果想在指定路径下检索头文件,可加选项-I。如我的/home/Desktop目录下有个头文件local1.h,在编译包含local1.h的test.c文件时,可用:gcc test.c -o test -I /root/Desktop。 

标签:文件,包含,stdio,路径,c++,文件夹,include,作用
From: https://www.cnblogs.com/opensmarty/p/16899374.html

相关文章

  • 【c&c++】LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
    LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下:LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定......
  • 【c&c++】为什么库要分为静态库和动态库
    根据链接时期的不同,库又有静态库和动态库之分。静态库是在链接阶段被链接的,所以生成的可执行文件就不受库的影响,即使库被删除,程序依然可以成功运行。而动态库是在程序执行......
  • 【c&c++】链接静态库文件时的搜索路径
    经测试,链接静态库的时候静态库的搜索路径包括/lib;/lib64;/usr/lib;/usr/lib64/;/usr/local/lib;/usr/local/lib64, 静态库文件完整的搜索顺序:比如我们要生成的最终可......
  • 【c&c++】如何创建动态库
    静态库是在链接阶段被链接的,所以生成的可执行文件就不受库的影响,即使库被删除,程序依然可以成功运行。而依赖动态库的程序其实也有链接动态库的阶段,只不过这个链接并不是真......
  • 【c&c++】 -fpic 与-fPIC的区别
        在编译动态库的时候,我们应该需要使用-fpic或-fPIC参数。pic与PIC的异同相同点:都是为了在动态库中生成位置无关的代码。通过全局偏移表(GOT)访问所有常量地址......
  • 【C++高级编程】(二)设计专业的C++程序
    本章内容:程序设计的定义程序设计的重要性C++程序设计的特点高效C++程序设计的两个基本主题:抽象以及重用不同类型的重用代码代码重用的优缺点重用代码的常用策略及......
  • c++多线程thread用法小例子
    测试分布式存储系统时,针对并发测试,同时创建500个文件,采用这种方法。#include<iostream>#include<thread>usingnamespacestd;voidproc(inta){cout<<"子线......
  • C++ Tips:static const size_t nops、string substr、upper_bound、find()
    维基百科连接......
  • C/C++学生综合测评系统
    C/C++学生综合测评系统项目十六学生综合测评系统(2周)[目的要求]学生根据所学的程序设计基础原理与程序设计的知识,能够针对-一个小型的程序设计基础管理系统,进行系统的......
  • 【c&c++】C语言中#ifdef,#ifndef和#endif的作用
    现在规定一下头文件书写规范,根据陈皓编写的跟我一起些makefile,一定要记住:头文件中应该只是声明,而定义应该放在C/C++文件中。否则如果出现有定义,比如头文件中有inta=2;如......