• include的作用


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

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

    所以include后,源程序变为

    //file a.c
    #include <stdio.h>
    int d = 3;
    main(){
    printf("d = %d
    ",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。 

  • 相关阅读:
    Android 一般动画animation和属性动画animator
    Android的SQLite基本操作
    android 支持发送空短信
    android 小音频频繁播放
    大数据测试之hadoop集群配置和测试
    老李分享:接口测试之jmeter
    大数据测试之hadoop命令大全
    老李分享:持续集成学好jenkins之内置命令
    老李分享:持续集成学好jenkins之安装
    老李分享:持续集成学好jenkins之解答疑问
  • 原文地址:https://www.cnblogs.com/saolv/p/9629237.html
Copyright © 2020-2023  润新知