c 中的 include不止可以這麼用

2021-04-01 20:39:11 字數 1312 閱讀 3287

平時我們用#include的時候,有許多人不真正理解#include的行為,認為#include只能包含庫,其實這只是

我們常用的方式,或許沒有其他書籍或老師過多的討論這個問題,只是說是匯入所需要的原始檔,如果你學過

jsp你會知道他有兩種包含:<%@include="soucefile"%>和,其實c++中的#include

行為和上面的第一種行為類似,是乙個靜態包含。

#include我們平時都這麼用:

#include

using namespace std;

int main()

cout<<"hello world"

在自己的程式**中可以用這些東西,而是為了讓大家更好的理解#include以及其他c++的東西)

先寫個古怪的**:

add.h 檔案

int add(int x,int y);//宣告函式

add.cpp 檔案

#include

#include"add.h"

using namespace std;

int main()

cout

int add(int x,int y)

return x+y;

更古怪的例子:

cout.h     檔案

cout<<"hello world"<.cpp檔案

#include

using namespace std;

int main()

#include"cout.h"

#include"cout.h"

return 0;

結果列印兩個hello world

使用的場合不夠清楚

例如以下條件編譯例子:

#if  !define add_h

#define add_h

#endif

這個預處理程式執行的順序是這樣的:

預處理程式依次對#if以及後繼的#elif(如果還有#elif)指令中的常量表示式進行計算,直到發現乙個常量表示式有非零值,並刪去值為零指令行後面的文字.常量表達是不為零的,指令後的文字象其他程式一樣正常執行

為什麼需要預編譯?是因為防止重複編譯,重複宣告.

而象#include"cout.h"裡面不是什麼宣告,當然可以#include的了,語句是可以重複的呀

而#include"add.h"則不可以包含多次. 

大家可以用#include寫出許多怪異的程式,這當然不是編碼規範所允許的,更不提倡這麼寫

為了理解#include大家可以做些怪異的程式試試/

C 中 include的問題

f0305.cpp 定義控制台應用程式的入口點。string長度可伸縮,比字元陣列靈活 通過字元指標操作字串,容易出錯。但string效能略遜於字元指標。include stdafx.h include iostream include include string 這是c 裡面的標頭檔案與c語言中...

C 中的 標頭檔案」 include「

algorithm意為 演算法 是c 的標準模版庫 stl 中最重要的標頭檔案之一,提供了大量基於 迭代器的非成員模版函式 非修改性序列操作 12個 for each 迴圈 對序列中的每個元素執行某操作 find 查詢 在序列中找出某個值的第一次出現的位置 利用底層元素的等於操作符,對範圍內的元素與...

C 中 include的工作原理

大多數人可能對 include 比較熟悉,因為我們寫c c 程式的時候都會寫的字串之一,但是它是具體怎麼工作的?或者它的原理是什麼呢?可能不太熟悉,也有可能沒有去關心過。我們只關心程式能否正確執行,或者程式怎麼實現等等一些問題。這裡筆者就為介紹下我們熟悉又不太熟悉的 include 首先我們了解下c...