C Primer Plus 第九章(單獨編譯)

2021-07-05 06:17:19 字數 1347 閱讀 8773

詳細請參考c++ primer plus 第九章(p301)

1單獨編譯

與其將結構宣告加入到每乙個檔案中,不如將其放在標頭檔案中,然後在每乙個源**檔案中包含該標頭檔案。這樣,要修改結構宣告時,只需要在標頭檔案中做一次改動即可。另外,也可以將函式原型放在標頭檔案中。因此,可以將原來的程式分成三部分:

第一,標頭檔案:包含結構宣告和使用這些結構的函式的原型。

第二,源**檔案:包含與結構有關的函式的**。

標頭檔案常常包含的內容:

1)函式原型;

2)使用#define或const定義的符號常量;

3)結構宣告;

4)類宣告;

5)模板宣告;

6)內聯函式

只需要將源**檔案加入到專案中,而不用加入標頭檔案。這是因為#include指令管理標頭檔案。另外,不要使用#include來包含源**檔案,這樣做將導致多重宣告。

注意:不要將標頭檔案加入到專案列表中,也不要在源**檔案中使用#include來包含其他源**檔案。

2檔案頭管理

在同乙個檔案中只能將同乙個檔案包含一次。下面的片段意味著僅當以前沒有使用預處理器編譯指令#define定義名稱coordin_h_時,才處理#ifndef和#endif之間的語句:

#ifndef coordin_h_

#define coordin_h_

...   ...

#endif

如果在同乙個檔案中遇到其他包含coordin.h的**,編譯器將知道coordin_h_已經被定義了,從而跳到#endif後面的一行上。注意,這種方法並不能防止編譯器將檔案包含兩次,而只是讓它忽略除第一次包含之外的所有內容。

3程式**例子

標頭檔案

#ifndef coordin_h_

#define coordin_h_

struct polar

;struct rect

;polar rect_to_polar(rect xypos);

void show_polar(polar dapos);

#endif

原始檔

#include

#include

#include "coordin.h"

polar rect_to_polar(rect xypos)

void show_polar(polar dapos)

原始檔 主程式

#include

#include "coordin.h"

using namespace std;

int main()

cout<<"bye!\n";

return 0;}

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...

第九章作業

班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...

第九章 引用

引用擁有指標的所有功能,只是語法更加的簡單 1 引用就是別名,變數的另外乙個名字,變數和別名它們的位址是一樣的,操作別名就是操作變數 2 引用就是別名常量,一旦引用被初始化就不能再改變了 可以理解為指標常量,指向的值不能改變,能改變的只是它的該位址處的值 3 引用物件huamn mike human...