首页 > 其他分享 >#include ""和#include <>的区别

#include ""和#include <>的区别

时间:2023-04-12 15:49:16浏览次数:37  
标签:func1 include 头文件 区别 路径 main 目录

现study目录有三个目录:src、include、obj

src目录下有main.c、func1.c

include目录下有func1.h

//main.c
#include "func1.h"
#include <stdio.h>
int main()
{
  func1();
  printf("this is main\n");
  return 0;        
}
//func1.c
void func1()
{   printf("this is func1\n");   return ; }
//func1.h
void func1();

#include ""

  1. 表示从包含该头文件的文件(即main.c所在的路径)所在路径下找

  2. 如果没找到就从系统所指定的默认路径下找(如usr/include或usr/local/include)

  很显然,在main.c中#include "func1.h",func1.c既不在main.c所在的路径,又不在系统的默认路径,

  所以在编译时需要我们手动去指定头文件所在的路径。

  当前在study目录下,即用gcc -c -Wall ./src/main.c -I(大写的i) ./include -o ./obj/main.o。这样就可以手动指定头文件的路径,在编译和汇编阶段就不会报错

  -I(大写的i) ./include 在编写makefile中指定不同路径下的头文件很重要

#include <>

  直接去系统所指定的默认路径下找头文件

标签:func1,include,头文件,区别,路径,main,目录
From: https://www.cnblogs.com/zj-studyrecoding/p/17310025.html

相关文章

  • R语言:关于NA, <NA> , NaN的区别
    NA表示缺失项是数值型;表示缺失项是因子型;NaN表示缺失项为非数值型;来源:https://statisticsglobe.com/r-na/......
  • REST和SOAP的区别
    SOAP简单对象访问协议(SimpleObjectAccessProtocol,SOAP)是一种基于XML的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于“通用”传输协议是SOAP的一个优点。它还支持从消息系统到远程过程调用(Remote......
  • utf8和utf8mb4有什么区别?
    一、简介MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是mostbytes4的意思,专门用来兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。二、内容描述通常,计算机在存储字符时,会根据不同类型的字符......
  • C++-unique_lock与lock_guard区别
    C++-unique_lock与lock_guard区别https://blog.csdn.net/ccw_922/article/details/124662275https://blog.csdn.net/sinat_35945236/article/details/124505414都可以对std::mutex进行封装,实现RAII的效果。绝大多数情况下这两种锁是可以互相替代的,区别是unique_lock比lock_gu......
  • Ado.net与EF的区别?
    运行效率方面:Ado.net更好,直接通过Command、Connection等命令写sql语句进行CRUD操作。开发效率方面:EF开发起来更快,代码可读性好。只需操作对象,使用C#语法完成数据库操作。适用性方面:EF适合大型项目,数据量大。Ado.net适合小型项目,运行效率高。......
  • 数组和链表的区别
    1.读取数组读取耗时为O(1),支持随机读取;链表读取耗时为O(n),仅支持顺序读取; 2.插入(已知目标节点)数组插入耗时为O(n);链表插入耗时为O(1); 3.删除(同插入)数组插入耗时为O(n);链表插入耗时为O(1);  ......
  • HTML5 Canvas和SVG的区别
    Canvas主要是用笔刷来绘制2D图形的。SVG主要是用标签来绘制不规则矢量图的。相同点:都是主要用来画2D图形的。区别:SVG画的是矢量图,Canvas画的是位图;SVG节点过多时渲染慢,Canvas性能更好一点,但写起来更复杂;SVG支持分层和事件,Canvas不支持,但是可以用库实现。......
  • JavaScript 的 ==、===、区别
    在JavaScript中,==和===都是用于比较两个值是否相等的运算符。它们之间的主要区别在于类型转换方面。具体来说:== 运算符在检查相等性之前会根据需要进行类型转换,将不同类型的值转换为相同类型。例如,如果一个操作数是字符串类型,另一个是数字类型,那么字符串会被转换成数字后......
  • 数据挖掘中聚类和分类有什么区别
         分类(classification)是这样的过程:它找出描述并区分数据类或概念的模型(或函数),以便能够使用模型预测类标记未知的对象类。分类分析在数据挖掘中是一项比较重要的任务,目前在商业上应用最多。分类的目的是学会一个分类函数或分类模型(也常常称作分类器),该模型能把......
  • 聚类与分类区别2
       在分类中,对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来。聚类需要解决的问题是将已给定的若干无标记的模式聚集起来使之成为有意义的聚类,聚类是在预先不知道目标数据库到底有多少类的情况下,希望将所有的记录组成不同的类或者说聚类,并且......