代码之家  ›  专栏  ›  技术社区  ›  Gam Chandrahas Aroori

我应该使用#include<文件吗。h> 还是“file.h”?

  •  3
  • Gam Chandrahas Aroori  · 技术社区  · 7 年前

    有两种方法可以在C中包含文件:

    #include <headerpath/header.h>
    

    #include "headerpath/header.h"
    

    第一个将使用编译器已知的目录查找文件,因此我们可以在不知道标准文件在哪里的情况下包含它们。

    我们可以将一个或多个目录添加到编译器知道的目录列表中(第一种方式)。例如,对于gcc,我们有 -I 选项

    因此,最后,以下两个代码是等效的(path\u to\u头是一个目录):

    1)

    #include "path_to_header/header.h"
    
    int     main(void)
    {
        return (0);
    } // Compiling with : gcc main.c
    

    2)

    #include <header.h>
    
    int     main(void)
    {
        return (0);
    } // Compiling with : gcc main.c -I path_to_header
    

    例如,对于我自己的头文件,我应该使用1)还是2)?为什么?也许这只是个人的选择?有不同的情况需要了解吗?

    感谢阅读:)

    我并不是在寻找这两种方式之间的区别(我想我已经理解了它们,因为 this post ),我想知道是否有一些特殊情况需要了解,可能是对于小组工作,或者对同一个程序使用不同的编译器。。。也许我不知道如何表达我的想法(或者这是一个没有真正答案的愚蠢问题),我必须试着知道:)。

    3 回复  |  直到 7 年前
        1
  •  5
  •   bbaassssiiee    7 年前

    #include <stdio.h>
    

    对于项目的标题,请使用:

    #include "project/header.h"
    

    对于其他库,请使用命令行上的选项-I。

        2
  •  2
  •   Max    7 年前

    根据 C standard 标准 他们之间的区别是 #include <...> 虽然 #include "..." 包括 (然后回到 <...> 没有找到源文件时的行为)。所有其他差异均由实现定义。

    这种区别很重要,因为例如,一个标准的标头 stdlib.h

    对于您自己的代码,由于您不会有这样的头魔法,并且应该确切地知道您希望从自己的工作中包括哪些源文件,以及您希望编译器处理哪些源文件(系统库等),因此您应该只使用 <...&燃气轮机; 对于不属于项目文件结构的包含。

        3
  •  1
  •   Gabriel Magri    7 年前

    您必须使用<标题。h>当标头是系统标头时,该标头不包含在您要包含它的源中。