平時我們用#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...