C語言程式設計——9,預處理命令
以“#”開頭的預處理命令一般都放在函式之外,而且一般放在原始檔前面,他們成為預處理部分。
預處理指的是進行編譯的第一遍掃描(語法掃描和語法分析)之前所作的工作。它由預處理程式負責完成。當對一個原始檔進行編譯時,系統自動引用預處理程式對預處理部分進行處理,處理完畢後自動進入對源程式的編譯。
C語言的預處理功能主要有:
- 巨集定義
- 檔案包含
- 條件編譯
巨集定義
用一個識別符號來表示字串,稱為“巨集”,識別符號稱為巨集名。在編譯預處理階段,所有巨集名會被巨集定義中的字串替代,稱為“巨集展開”或“巨集代換”。巨集分為無參巨集和有參巨集。
無參巨集定義
巨集名後不帶引數
格式:#define 識別符號 字串
字串可以是常數、表示式、格式串,為了巨集代換不出現錯誤,字串最好加括號
巨集定義作用域為巨集定義命令到源程式結束,可以用#undef提前終止作用域
帶參巨集定義
格式:#define 巨集名(形參表) 字串
檔案包含
作用是把指定檔案插入命令列位置取代命令列,從而把指定檔案和當前源程式檔案連成一個原始檔。
格式:#include "檔名"
#include <檔名>
使用<>表示在包含檔案目錄中去查詢(包含目錄是使用者在設定環境時設定的),而不在原始檔目錄查詢。
使用“”表示首先在當前的原始檔目錄中查詢,若未找到才到包含目錄中去查詢。
條件編譯
條件編譯功能可以按不同的條件去編譯不同的程式部分,因而產生不同的目的碼檔案。對於程式的移植和除錯很有用。
三種形式
1、
#ifdef 識別符號
程式段1
#else //若程式段2為空,則可以省略
程式段2
#endif
2、
#ifndef 識別符號 //if no define
程式段1
#else //若程式段2為空,則可以省略
程式段2
#endif
3、
#ifdef 常量表示式 //根據常量表示式的值判斷
程式段1
#else //若程式段2為空,則可以省略
程式段2
#endif
相關文章
- C 語言預處理命令總結大全
- C語言程式設計練習 GPS資料處理C語言程式設計
- 如何系統學習C 語言(下)之 預處理命令篇
- 資料處理的 9 大程式語言
- C語言程式設計C語言程式設計
- C++語言程式設計筆記 - 第12章 - 異常處理C++程式設計筆記
- C語言程式設計原理C語言程式設計
- c語言程式設計題C語言程式設計
- 9個最佳的大資料處理程式語言大資料
- C語言的本質(21)——預處理之三:其它預處理特性及總結C語言
- 數字訊號處理c語言程式集C語言
- C語言MySQL程式設計示例C語言MySql程式設計
- C 語言程式設計(unix) (轉)程式設計
- 結對程式設計(c語言)程式設計C語言
- 用c語言處理檔案C語言
- Go 語言操作 MySQL 之 預處理GoMySql
- 奇怪的C語言——C51程式設計C語言注意事項C語言程式設計
- C語言的本質(20)——預處理之二:條件預處理和包含標頭檔案C語言
- 自然語言處理中的語言模型預訓練方法自然語言處理模型
- C 語言程式設計利器之 CLion程式設計
- C#函數語言程式設計C#函數程式設計
- C語言程式設計基本規範C語言程式設計
- MySQL的C語言程式設計(一)MySqlC語言程式設計
- 預處理命令
- C語言的本質(19)——預處理之一:巨集定義C語言
- C語言細節 前處理器C語言
- c語言字串處理函式大全C語言字串函式
- 【C++】 63_C語言異常處理C++C語言
- 偽隨機數C語言程式設計隨機C語言程式設計
- C語言程式設計-漢字點陣C語言程式設計
- C語言+圖形程式設計——自制象棋C語言程式設計
- C++的函數語言程式設計C++函數程式設計
- C 語言程式設計習慣總結程式設計
- C語言程式設計B作業04C語言程式設計
- 初步瞭解C語言Windows程式設計C語言Windows程式設計
- Linux下C語言程式設計(轉)LinuxC語言程式設計
- 傻瓜程式設計入門(C語言版)程式設計C語言
- C語言程式設計題T1C語言程式設計