兩種標頭檔案包含#include的區別
相同點:
都會在實現定義的位置查詢檔案,並將其包含。
不同點:
- 若 #include "" 查詢成功,則遮蔽 #include <> 所能找到的同名檔案;否則再按照 #include <> 的方式查詢檔案。另外標準庫標頭檔案都放在 #include <> 所查詢的位置。
- 一般來說,< >引用的是編譯器的類庫路徑裡面的標頭檔案,#include <> 的查詢位置是標準庫標頭檔案所在目錄;" "引用的是你程式目錄的相對路徑中的標頭檔案, #include "" 的查詢位置是當前原始檔所在目錄。(不過這些都可由編譯器呼叫引數等配置更改)
- <>先去系統目錄中找標頭檔案,如果沒有再到當前目錄下找。所以像標準的標頭檔案 stdio.h、stdlib.h等用這個方法。 而""首先在當前目錄下尋找,如果找不到,再到系統目錄中尋找。 這個用於include自定義的標頭檔案,讓系統優先使用當前目錄中定義的。
參考:
https://www.cnblogs.com/raorao1994/p/9045756.html
相關推薦
兩種標頭檔案包含#include的區別
相同點: 都會在實現定義的位置查詢檔案,並將其包含。 不同點: 若 #include "" 查詢成功,則遮蔽 #include <> 所能找到的同名檔案;否則再按照 #include <> 的方式查詢檔案。另外標準庫標頭檔案都放在 #
simplelink_cc2640r2_sdk_1_40_00_45 之 C/C++ Compiler 標頭檔案包含中的巨集值
simplelink_cc2640r2_sdk_1_40_00_45 ---------------------------------------------------------------- $SRC_BLE_DIR$=C:\Users\coolban_one\Desktop\C
檢視系統標頭檔案包含路徑
cpp -v命令可以檢視標頭檔案包含路徑,記錄一下。 linux下執行結果: Using built-in specs. COLLECT_GCC=cpp Target: x86_64-unknown-linux-gnu Configured with: ../configure --
C語言stdio標頭檔案包含內容介紹(常用函式用法簡介)
結構體: FILE 在stdio.h標頭檔案中定義的結構。一般來說,它用於對檔案進行操作的函式的引數或者返回值等等。它在標頭檔案中的定義如下(成員後面的註釋援引自百度知道,準確與否我查詢資料未果,到後來專門找個時間將FILE結構體解讀一下):typedef struc
gcc和交叉編譯標頭檔案包含問題
eclipse開發環境下,同一個工程,使用gcc成功編譯,但是使用交叉編譯,提示找不到標頭檔案,這是因為兩者預設的標頭檔案包含路徑不一樣。 在LINUX程式設計當中,經常會遇到標頭檔案包含的問題,那麼這些標頭檔案到底在哪個路徑下?具體的標頭檔案路徑依賴於程
C# 兩種啟動bat檔案方法的區別——關鍵在於程序的工作目錄
1、 private void RunBat(string batPath) { Process pro = new Process(); FileInfo file = new FileInfo(batPath); pro.StartInfo.Work
extern與標頭檔案(*.h)的區別和聯絡
個人認為有一些道理:所以轉過來學習了。 用#include可以包含其他標頭檔案中變數、函式的宣告,為什麼還要extern關鍵字? 如果我想引用一個全域性變數或函式a,我只要直接在原始檔中包含#include<xxx.h> (xxx.h包含
linux kernel標頭檔案包含問題
一 平臺相關程式碼 即arch/xxx目錄下的程式碼能包含的標頭檔案有: 1. arch/$(SRCARCH)/include/asm為平臺相關標頭檔案 2.include/asm-generic為所有平臺共用的標頭檔案,跟具體平臺無關,
C++的標頭檔案,原始檔區別
一、宣告與定義的區分:一個宣告就是一個定義,除非 :宣告:引入名稱定義:引入實體1.它聲明瞭一個沒有詳細說明函式體的函式2.它包含一個extern定義符且沒有初始化函式或函式體3.它是一個包含在一個類定義之內的靜態類資料成員的宣告,它必須在最終程式的某處準確的定義一次4.它是
C語言標頭檔案包含和編寫的幾個基本規則
總想著把所有的標頭檔案都塞到一個頭檔案裡邊,然後,所有.c檔案只包含這一個混雜的標頭檔案就行了,也不用注意太多,, 但是這樣好像不行,摘抄一篇文章備份一下,覺得寫的不錯, 尊重原創,原文連結:http://blog.csdn.net/ison81/article/det
STM32 HAL庫標頭檔案包含關係
如圖,從左到右下的順序寫: -----------------------------------------------------------------------------------------------------------------------
利用python+graphviz繪製資料結構關係圖和指定目錄下標頭檔案包含關係圖
作為一名linux系統下的C語言開發,日常工作中經常遇到兩個問題: 一是分析程式碼過程中,各種資料結構互相關聯,只通過程式碼很難理清系統中所有結構體的整體架構,影響程式碼消化的效率; 二是多層標頭檔案巢狀包含,在新增需要被多處引用的結構體或者函式介面時,難以找到合適的地方放置結構體和函式介面的定義
初夏小談:C/C++防止標頭檔案被重複包含的兩種方法及區別
防止標頭檔案被重複包含的兩種方式: 1.條件編譯的巨集 2.#pragma once 先來說說第一種: #ifndef __HEADNAME__H__ #define __HEADNAME__H__ //... //標頭檔案 #endif C/C++標準支援
C++ 中#include標頭檔案兩種方式的區別
<>:先在系統目錄中尋找標頭檔案,然後再到當前目錄下找,一般用於標準的標頭檔案 stdio.h和 stdlib.h等等" ":先在當前目錄中尋找標頭檔案,然後再到系統目錄中找,一般用於in
KEIL 標頭檔案路徑和#include區別
KEIL 標頭檔案路徑可以直接寫在引號內,預設的話,標頭檔案必須在工程檔案同一個目錄下,比如: #include<ds0832.h> //此時ds0832.h 檔案必須與工程檔案同一目錄 #include "d:\myfile\ds0832.h" //此時 ds0832.h檔案在d:\m
include怎麼關聯標頭檔案?標頭檔案如何關聯原始檔?標頭檔案被重複包含的危害?怎麼防止重複包含?
標頭檔案(.h)的功能是一般用來進行宣告的(函式,類或變數引用,巨集定義)。 原始檔(.cpp)是用來進行定義的(函式,類定義,變數定義)。 #include 是在編譯器進行編譯之前,即在預編譯時把它後面所寫的那個標頭檔案的內容,完完整整地、 一字不改地包含到當前的原始檔中來。 &nbs
使用#include包含C++的所有標頭檔案
參考部落格:http://blog.csdn.net/u011466175/article/details/24638621?utm_source=tuicool&utm_medium=referral #include<bits/stdc++.h>這個
#include包含C++的所有標頭檔案
做CF看見別人用這個函式,然後就能直接用vector,set,string那些函數了,摸不著頭腦,感覺特神奇就百度了一下,才發現這個是C++版本升級,然後檔案自帶的,方便了程式設計師吧。不然每次都得敲那模板老長…… 使用和平常的標頭檔案一樣,如下: #include<
C++兩個類標頭檔案互相包含
在構造自己的類時,有可能會碰到兩個類之間的相互引用問題,例如:定義了類A類B,A中使用了B定義的型別,B中也使用了A定義的型別class A{ int i; B b;}class B{ int i; A* a;}請注意上面的定義內容,一般情況下是不能出
【樹莓派開發】 Qt Creator中,include路徑包含過程(或如何找到對應的標頭檔案)
在使用QUdpSocket類時,包含標頭檔案include<QUdpSocket>出現找不到檔案或目錄 解決辦法:1)新增 QT += network 2)在.pro檔案中直接新增標頭檔案的絕對路徑