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語言程式設計——9,預處理命令
以“#”開頭的預處理命令一般都放在函式之外,而且一般放在原始檔前面,他們成為預處理部分。 預處理指的是進行編譯的第一遍掃描(語法掃描和語法分析)之前所作的工作。它由預處理程式負責完成。當對一個原始檔進行編譯時,系統自動引用預處理程式對預處理部分進行處理,處理完畢
C語言程式設計--巨集和預處理
C語言巨集 巨集定義常量 #include <stdio.h> #define SIZE 100 #define BANNER "WARNING:" int main(void){ printf("%d\n", SIZE); printf("%s\n",BANN
C++學習(二十七)(C語言部分)之 預處理命令
world! 條件編譯 *** 所有 表達 自己 函數的參數 .lib 修改 結構體 聯合 枚舉 聯合 只能保存最後賦值的結果枚舉 所有可能值列出來 預處理命令是在編譯前期的階段 代碼-(編譯)-->可執行文件(exe)預編譯 編譯前對代碼處理 *1.插
C語言檔案操作 和 預編譯命令
//read檔案 int main(){ char *path = "D:\\friends.txt"; FILE *fp = fopen(path, "r"); char buff[500]; while (fgets(buff,50,fp)){ printf("%s\n", b
《6.C語言巨集定義與預處理、函式和函式庫》
《6.C語言巨集定義與預處理、函式和函式庫》 第一部分、章節目錄 4.6.1.C語言預處理理論 4.6.2.C語言預處理程式碼實戰 4.6.3.巨集定義1 4.6.4.巨集定義2 4.6.5.函式的本質 4.6.6.函式的基本使用 4.6.7.遞迴函式 4.6.8.函式庫 4.6.9.字
C語言程式設計題,給定一個日期,輸出這個日期是該年的第幾天
/** C語言程式設計題 給定一個日期,輸出這個日期是該年的第幾天 */ int getIndexOfDay(int year, int month, int day) { int months[12] = {31, 28, 31, 30, 31, 30
C語言程式設計---9:自定義資料型別
/*輸入學生的學號、姓名、性別、年齡、成績、家庭住址,輸出成績較高的學生資訊*/ #include<stdio.h> void main() { struct student
33.C語言巨集定義和預處理
33.1.原始碼到可執行程式過程 (1)原始碼.c檔案->(編譯)->elf可執行程式。 (2)原始碼.c->(編譯)->目標檔案.o->(連結)->elf可
C語言程式設計實現,浮點型與字元陣列相互轉化
歡迎轉載,請註明出處,本文地址:http://blog.csdn.net/jk050802/article/details/8628764 聯絡郵箱:[email protected] 簡介 從浮點型轉換為字元型:這裡比較簡單,只需要用
9、C語言之預處理命令
() body 重復 分號 stdio.h ifdef 可用 style 處理 預處理命令 基本概念:ANSI C標準規定可以在C源程序中加入一些“預處理命令”,以改進程序設計環境,提高編程效率。 這些預處理命令是由ANSI C同一規定的,但是它們不是C語言本身的組
C語言程式設計 細節總結(第10-11章 檔案、預處理命令)
第10章 檔案 1.C語言系統把檔案當成一個流,按位元組進行處理 2.檔案按編碼方式分為二進位制檔案和ASCII檔案(文字檔案) 3.用檔案指標標識檔案,開啟檔案可取得該指標 4.對檔案進行操作,開啟->讀寫->關閉 5.檔案開啟方式只有四種:只讀、
C語言中的預處理命令
情況下 工作 生成 替換 作用域 .com clu pan 器) 預處理功能是C語言的重要功能。 問:為什麽要預處理,什麽是預處理? 答:我們知道高級語言的運行過程是通過編譯程序(編譯器)把源代碼翻譯成機器語言,實現運行的。編譯程序的工作包含:語法分析、詞法分析、代碼生
C語言預處理命令之檔案包含
檔案包含預處理命令的一般形式是: #include<檔名> 或者 #include“檔名” #include命令告訴前處理器用指定檔案的內容替換這條命令,兩種不同的命令格式決定了前處理器對指定檔案的搜尋方式:如果檔名是用一對尖括號括起來的,則前處理器直接到存放編譯器所提供的標準標頭檔案的目
C語言預預處理命令
1, #typedef 定義類型別名 2, #define PI(形參表) 3.14 定義一個表示符和一個字串 3, #undef PI 終止巨集定義的作用域 4, #incl
《C++語言程式設計基礎》學習類與物件之多檔案結構和預編譯命令
C++程式的一般組織結構: 一個工程可以劃分為多個原始檔,例如: 類宣告檔案(.h檔案) 類實現檔案(.cpp檔案) 類的使用檔案(main()所在的.cpp檔案) 利用工程來組合各個檔案。Point.h class Point { //類的定義 public:
C語言預處理命令詳解
本文參考諸多資料,詳細介紹常用的幾種預處理功能。因成文較早,資料來源大多已不可考證,敬請諒解。全文字數2萬,閱讀時間50分鐘,建議先收藏。 一 前言 預處理(或稱預編譯)是指在進行編譯的第一遍掃描(詞法掃描和語法分析)之前所作的工作。預處理指令指示在程式正式編譯前就由編譯器進行的操作
c語言編譯過程詳解,預處理,編譯,彙編,連結(乾貨滿滿)
鍥子 我們在各自的電腦上寫下程式碼,得明白我們程式碼究竟是如何產生的,不想了解1,0什麼的,但這幾個環節必須掌握吧。 我們的程式碼會經過這4個環節,從而形成最終檔案,c語言作為編譯語言,用來向計算機發出指令。讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在
黑馬程式設計師——————c語言之預處理命令
一、什麼是預處理指令 1、C語言在對源程式進行編譯之前,會先對一些特殊的預處理指令作解釋,產生一個新的源程式(這個過程稱為編譯預處理),之後再進行通常的編譯 2、為了區分預處理指令和一般的C語句,所有預處理指令都以符號"#"開頭,並且結尾不用分號3、預處理指令可以
1005 - C語言程式設計教程(第三版)課後習題4.9
1005 - C語言程式設計教程(第三版)課後習題4.9 時間限制:1秒 記憶體限制:128兆 題目描述 輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5(F-32)/9 輸出要求有文字說明,取位2小數。 輸入 一個華氏溫度,浮點數 輸出 攝氏溫度,浮點兩位小數 樣例輸入 -4
c預處理命令偏門知識
1.預處理替換 #define max(x,y) ((x)>(y)?(x):(y))用來代替函式 2.預處理代替列印 #define print(A) printf("%s=%d",#A,A)用來將識別符號及其所代表的數值打印出來 3.預處理連線符 #defin