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語言程式設計練習 GPS資料處理C語言程式設計
- 如何系統學習C 語言(下)之 預處理命令篇
- C++語言程式設計筆記 - 第12章 - 異常處理C++程式設計筆記
- c語言程式設計題C語言程式設計
- 結對程式設計(c語言)程式設計C語言
- 用c語言處理檔案C語言
- C 語言程式設計利器之 CLion程式設計
- 20201022-成信大-C語言程式設計-20201學期《C語言程式設計B》C-trainingExercises26C語言程式設計AI
- Go 語言操作 MySQL 之 預處理GoMySql
- C語言細節 前處理器C語言
- 自然語言處理中的語言模型預訓練方法自然語言處理模型
- 【C++】 63_C語言異常處理C++C語言
- C語言趣味程式設計100例pdfC語言程式設計
- C語言+圖形程式設計——自制象棋C語言程式設計
- C語言程式設計題T1C語言程式設計
- C語言指標應用程式設計C語言指標程式設計
- C 語言程式設計習慣總結程式設計
- C語言程式設計B作業04C語言程式設計
- 偽隨機數C語言程式設計隨機C語言程式設計
- C語言程式設計-漢字點陣C語言程式設計
- 初步瞭解C語言Windows程式設計C語言Windows程式設計
- C++的函數語言程式設計C++函數程式設計
- 精通Python自然語言處理 2 :統計語言建模Python自然語言處理
- C語言程式設計之《資料輸出》C語言程式設計
- C語言程式設計-實驗報告4C語言程式設計
- c語言程式設計——實驗報告一C語言程式設計
- # c語言程式設計——實驗報告一C語言程式設計
- c語言程式設計--實驗報告一C語言程式設計
- C語言程式設計—實驗報告四C語言程式設計
- c語言程式設計——實驗報告二C語言程式設計
- c語言程式設計——實驗報告六C語言程式設計
- 《C程式設計語言》 練習3-5C程式程式設計
- C語言 之 多執行緒程式設計C語言執行緒程式設計
- C語言如何實現泛型程式設計?C語言泛型程式設計
- 大一C語言程式設計練習題C語言程式設計
- LOTO示波器動作程式設計功能(命令批處理)程式設計
- 程式設計小技巧之 Linux 文字處理命令(二)程式設計Linux
- C語言零基礎教程之預處理和巨集定義篇C語言