當前位置:首頁 » 編程軟體 » 預處理命令是在c源程序編譯之前進行的

預處理命令是在c源程序編譯之前進行的

發布時間: 2025-05-26 23:14:32

⑴ C語言裡面的這個#include <stdio.h>什麼意思啊

#include<stdio.h>是在程序編譯之前要處理的內容,稱為編譯預處理命令。編譯預處理命令還有很多,它們都以「#」開頭,並且不用分號結尾。

stdio.h是頭文件,標准輸入輸出函數庫。頭文件是擴展名為.h的文件,包含了 C 函數聲明和宏定義,被多個源文件中引用共享。

有兩種類型的頭文件:程序員編寫的頭文件和編譯器自帶的頭文件。

在程序中要使用頭文件,需要使用 C 預處理指令#include來引用它。stdio.h頭文件,它是編譯器自帶的頭文件。

引用頭文件相當於復制頭文件的內容,但是我們不會直接在源文件中復制頭文件的內容,因為這么做很容易出錯,特別在程序是由多個源文件組成的時候。

(1)預處理命令是在c源程序編譯之前進行的擴展閱讀

程序設計語言的預處理的概念:在編譯之前進行的處理。 C語言的預處理主要有三個方面的內容:宏定義;文件包含;條件編譯。 預處理命令以符號「#」開頭。

頭文件的內容除了函數原型和宏定義外,還可以有結構體定義,全局變數定義:

一個#include命令指定一個頭文件;

文件1包含文件2,文件2用到文件3,則文件3的包含命令#include應放在文件1的頭部第一行;

包含可以嵌套;

<文件名>稱為標准方式,系統到頭文件目錄查找文件,"文件名"則先在當前目錄查找,而後到頭文件目錄查找;

被包含文件中的靜態全局變數不用在包含文件中聲明。

⑵ c++預處理命令有什麼用 如#include "stdafx.h"是什麼意思

程序設計語言的預處理的概念:在編譯之前進行的處理。 C語言的預處理主要有三個方面的內容: 1.宏定義; 2.文件包含; 3.條件編譯。 預處理命令以符號「#」開頭。
1.不帶參數的宏定義:

宏定義又稱為宏代換、宏替換,簡稱「宏」。

格式:

#define標識符 字元串

其中的標識符就是所謂的符號常量,也稱為「宏名」。

預處理(預編譯)工作也叫做宏展開:將宏名替換為字元串。

掌握"宏"概念的關鍵是「換」。一切以換為前提、做任何事情之前先要換,准確理解之前就要「換」。

即在對相關命令或語句的含義和功能作具體分析之前就要換:

例:

#define PI 3.1415926

把程序中出現的PI全部換成3.1415926
2.帶參數的宏:

除了一般的字元串替換,還要做參數代換

格式:

#define 宏名(參數表) 字元串

例如:#define S(a,b) a*b

area=S(3,2);第一步被換為area=a*b; ,第二步被換為area=3*2;
二. 文件包含一個文件包含另一個文件的內容

格式:

#include "文件名"



#include <文件名>

編譯時以包含處理以後的文件為編譯單位,被包含的文件是源文件的一部分。

編譯以後只得到一個目標文件.obj

被包含的文件又被稱為「標題文件」或「頭部文件」、「頭文件」,並且常用.h作擴展名。

修改頭文件後所有包含該文件的文件都要重新編譯

頭文件的內容除了函數原型和宏定義外,還可以有結構體定義,全局變數定義:

⑶ 預處理指令有什麼作用

程序設計語言的預處理是指在編譯之前進行的處理,C語言的預處理主要包括宏定義、文件包含和條件編譯三個方面。

宏定義,也稱宏代換、宏替換,是將標識符替換為字元串的過程。其格式為:#define 標識符 字元串。宏名通常用大寫,使用宏可以提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤並便於修改。例如,數組大小常用宏定義。宏定義不分配內存,變數定義分配內存,宏定義末尾不加分號,寫在函數的花括弧外邊,作用域為其後的程序,通常在文件的最開頭。可以用#undef命令終止宏定義的作用域,宏定義可以嵌套,字元串" "中永遠不包含宏。

帶參數的宏除了進行字元串替換外,還要進行參數代換。其格式為:#define 宏名(參數表) 字元串。例如,#define S(a,b) a*b area=S(3,2);第一步被換為area=a*b;,第二步被換為area=3*2;。類似函數調用,有一個啞實結合的過程。實參如果是表達式容易出問題,正確的宏定義是#define S(r) (r)*(r)。宏名和參數的括弧間不能有空格,宏替換只作替換,不做計算,不做表達式求解。函數調用在編譯後程序運行時進行,並且分配內存,宏替換在編譯前進行,不分配內存。宏的啞實結合不存在類型,也沒有類型轉換,函數只有一個返回值,利用宏則可以設法得到多個值。宏展開使源程序變長,函數調用不會。

文件包含是指一個文件包含另一個文件的內容,其格式為:#include "文件名" 或 #include 。編譯時以包含處理以後的文件為編譯單位,被包含的文件是源文件的一部分,編譯以後只得到一個目標文件.obj。被包含的文件又被稱為「標題文件」或「頭部文件」、「頭文件」,並且常用.h作擴展名。修改頭文件後所有包含該文件的文件都要重新編譯。頭文件的內容除了函數原型和宏定義外,還可以有結構體定義,全局變數定義。

條件編譯允許在條件滿足時才編譯某些語句。其格式為:#ifdef 標識符 程序段1 #else 程序段2 #endif 或 #ifdef 程序段1 #endif。當標識符已經定義時,程序段1才參加編譯。格式為:#ifndef 標識符。格式為:#if 表達式1 程序段1 #elif 表達式2 程序段2 …… #elif 表達式n 程序段n #else 程序段n+1 #endif。當表達式1成立時,編譯程序段1,當不成立時,編譯程序段2。使用條件編譯可以使目標程序變小,運行時間變短。預編譯使問題或演算法的解決方案增多,有助於我們選擇合適的解決方案。此外,還有布局控制:#pragma,這也是我們應用預處理的一個重要方面,主要功能是為編譯程序提供非常規的控制流信息。

熱點內容
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:515
微博資料庫設計 發布:2025-07-05 15:30:55 瀏覽:19
linux485 發布:2025-07-05 14:38:28 瀏覽:299
php用的軟體 發布:2025-07-05 14:06:22 瀏覽:750
沒有許可權訪問計算機 發布:2025-07-05 13:29:11 瀏覽:425
javaweb開發教程視頻教程 發布:2025-07-05 13:24:41 瀏覽:684
康師傅控流腳本破解 發布:2025-07-05 13:17:27 瀏覽:233
java的開發流程 發布:2025-07-05 12:45:11 瀏覽:678
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:277
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:828