c primer之預處理器

2021-07-03 18:38:52 字數 686 閱讀 4710

預處理器

確保標頭檔案多次包含仍然能安全工作的常用技術是預處理器

預處理器是在編譯之前執行的一段程式,可以部分的改變我們所寫的程式。

就如:預處理功能#include,當預處理器看到#include標記時就會用指定的標頭檔案的內容代替#include。

c++還會用到的一項預處理功能是標頭檔案保護符。

標頭檔案保護符依賴於預處理變數。

預處理變數有兩種狀態:已定義和未定義。

#define指令把乙個名字設定為預處理器變數,

另外兩個指令分別檢查某個指定的預處理變數是否已經定義:#ifdef當且僅當變數已定義時為真,#ifndef當且僅當變數未定義時為真。一旦檢查結果當真,則執行後續操作直至遇到#endif指令為止。

注意:整個程式中的預處理變數包含標頭檔案保護符必須唯一,並且一般要求大寫。

另外:標頭檔案即使沒有被包含在任何其他的標頭檔案中,也應該設定保護符。標頭檔案保護符很簡單,程式設計師只要習慣性地加上就可以了,沒必要太在乎你的程式到底需不需要。

預處理器之巨集定義

以 開頭的命令都是預處理命令,預處理不是c語言的語句,不能被編譯器編譯。所以在編譯之前需要使用預處理器做檔案的預處理工作。在編譯之前,所有的預處理語句都要被處理 替換或展開 eg1 一般巨集定義 define num 100eg2 有引數的巨集定義 define s a,b a beg3 寫乙個巨集...

CSS 預處理器之Less

是在css的基礎上進行擴充套件,可將css直接轉換成less,而less需要編譯 因而在小型專案中還是直接使用css更為便捷 但是大型專案中可考慮 更加簡潔 適應性更強 可讀性更佳,更易於 的維護 less文件 node.js 環境中使用 less npm install g less lessc ...

Snort預處理器之 Modbus

modbus 預處理器是乙個對 modbus 協議進行解碼的 snort 模組。它還提供了訪問某些協議欄位的規則選項。這允許使用者為 modbus 包編寫規則,而不用使用一系列 content 和 byte test 選項對協議進行解碼。modbus 是一種在 scada 網路中使用的協議。如果您的...