『壹』 求C語言中預編譯命令表
1 宏定義即是字元串替換。宏分為無參宏和含參宏。定義宏的位置可以在函數外部也可以在函數內部(vc++ 2008 測試通過)。宏的作用域是從定義處到取消定義命令[#undef 宏名]之間的部分,若無顯式的#undef命令則默認到文件結束。可以使用defined命令可以判斷宏是否被定義#if defined X (=#ifdef X),#if !defined X (= ifndef X)。 定義含參宏格式如#define SQ(y) ((y)*(y)),其中參數為y,宏得到的是y平方。為了保證宏替換的正確性,多加了3個括弧。但這樣的保證也是有限的,它要求y的值不能在(y)內改變,如把y換成i++將得不到期望的結果。 宏調用(實際上是宏替換)不用考慮形參的類型,這帶來一定的好處。如求兩個數最大值的宏#define MAX(a,b) (a>b)?a:b,實參可以是int,double等。宏定義可以包括多個語句,如#define CHANGE(X1,X2,X3,X4) X1 += 1;X2 += 2; X3 += 3; X4 +=4; 2 文件包含命令#include的功能是把指定的文件插入該命令行位置取代該命令行,從而把指定的文件和當前的源程序文件連成一個源文件。 源代碼分布於多個文件時,建議使用調用文件+頭文件+實現文件的模式。頭文件中包含要用到的函數說明,類型定義,宏定義,常數值等。具體的實現放在實現文件中。在調用文件和實現文件中都包含該頭文件即可。為了避免重復包含頭文件,可在頭文件中使用#ifndef [頭文件標示符(如X_Header等等)] + 頭文件內容 + #endif模式。 3 條件編譯命令可以按不同的條件去編譯不同的程序部分,因而產生不同的目標代碼文件。 這對於程序的移植和調試很有用。條件編譯有三種形式,下面分別介紹:
第一種形式根據有無對應宏定義選擇編譯程序段:
#ifdef 標識符 // 或 #ifndef 標示符
程序段1
#else
程序段2
#endif 第二種形式根據常量表達式值選擇編譯,值為非0執行if段。#if 常量表達式
程序段1
#else
程序段2
#endif
這里一定要是常量表達式,一般為宏。若是表達式包含變數則編譯器只能隨便猜一個了。 第三種形式含有#elif,看個例子吧#define ABC 3
void main(){#if ABC>0
int a=1;
printf("%d/n",a);
#elif ABC<0
int b=-1;
printf("%d/n",b);
#else
int c=0;
printf("%d/n",c);
#endif
} 其餘的預編譯命令如下,這里就不研究它們了。#line 標志該語句所在的行號
# 將宏參數替代為以參數值為內容的字元竄常量
## 將兩個相鄰的標記(token)連接為一個單獨的標記
#pragma 說明編譯器信息#warning 顯示編譯警告信息
#error 顯示編譯錯誤信息
『貳』 c語言程序,預編譯的作用
我們在用c做開發的時候,有時候項目很大,所寫的程序會很長。這樣我們如果還是寫在一個文件中,會出現管理上的問題和查看上的不方便,因此我們可以分多個文件寫我們的程序,這樣把一個功能的程序寫到一個文件里,便於查看也便於管理。但是把他們合起來的時候。頭文件會多次包含預編譯,預編譯的處理就可以用來防止頭文件的重復包含和編譯。
第二,使用宏定義可以提高程序的通用性和易讀性,減少不一致性,減少輸入錯誤便於修改。展開宏也是預編譯處理中的一項功能。
還有條件編譯處理也是預處理中的一項功能。
『叄』 初學c語言時,輸入程序後運行,是執行還是預編譯預編譯是什麼為什麼最開始要有#include如
預編譯是把一個工程中較穩定的代碼預先編譯好放在一個文件里.這些預先編譯好的代碼可以是任何的C/C++代碼。而輸入程序後的運行,只是將代碼編譯成了obj(object)文件,所有obj文件經鏈接(link)成為可執行文件。而你說的執行,應該就是點擊最後生成的.exe文件了。開始要有的#include,是表明要包含的頭文件,或者其它的保存的代碼文件。只有這樣,你才可以引用到那個文件中的代碼,來供目前的文件來使用。
至於你說的什麼大型游戲的編程,應該也是這樣的一套,因為C語言就是上述生成文件的套路。游戲的編程,初學的話可以建議看《游戲編程入門》( 美 哈本),這本書基於windows平台,是為幾乎沒有游戲開發經驗的初學者寫的,循序漸進,從2D講到3D 的一些基本技術,其中的例子也非常經典,看完書基本就可以做出不錯的2D 游戲了,也有了一定的3D基礎了,之後再看一些深入的書籍像《Windows游戲編程大師技巧》。
『肆』 C語言提供的預編譯處理命令主要有哪三種
1.宏定義:用一個指定的標識符(即名字)來代表一個字元串,如:用PI代表3.1415926,#define PI 3.1415926
2.文件包含:指一個源文件可以將另外一個源文件的全部內容包含進來,#include<文件名>
3.條件編譯:對一部分內容指定編譯的條件,即滿足一定的條件才編譯,主要有:
(1)#ifdef標識符
程序段1
#eles
程序段2
#endif
(2)#ifndef標識符
程序段1
#eles
程序段2
#endif
(3))#if標識符
程序段1
#eles
程序段2
#endif
『伍』 java中什麼是預編譯precompile
預編譯的作用就是把所以的代碼都運行一遍,等你程序運行到模塊A,這個時候需要到B模塊,就可以直接調用,效果是啟動慢,運行快;所以也稱JAVA為靜態語言,動態語言如JavaScript,特性就是當程序運行到C的時候需要調用D模塊,這個時候才會編譯D模塊。希望對你有幫助,謝謝
『陸』 c語言,編譯、預編譯區別
任何一種編程語言的編譯都是把代碼轉換成機器代碼認識的格式的過程,而C語言里的預編譯則是進行類似轉換宏,頭文件的代碼拷貝,條件語句轉換等等基礎的轉換工作。詳細可以看看網路里的內容。
『柒』 C/C++ 的預編譯原理是什麼為什麼要用預編譯
為了防止程序在實際應用當中出現錯誤
『捌』 c語言程序,預編譯的作用是什麼
預編譯又稱為預處理 , 是做些代碼文本的替換工作。
處理 # 開頭的指令 ,
比如拷貝 #include 包含的文件代碼,
#define 宏定義的替換 , 條件編譯等,
就是為編譯做的預備工作的階段,主要處理#開始的預編譯指令,預編譯指令指示了在程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。
c 編譯系統在對程序進行通常的編譯之前,先進行預處理。 c 提供的預處理功能主要有以下三 種:
1)宏定義 #definemin(a,b)((a)>(b)?(b)::(a))
2 )文件包含 如:#include<stdio.h>
3 )條件編譯#ifndefGRAPHICS_H
#defineGRAPHICS_H
*****
#endif
#ifdefGRAPHICS_H
*****
#else
*****
#endif
『玖』 C語言:預編譯是什麼
預編譯,顧名思義,從字面上看,就是提前編譯,它做的是工作就是為正式編譯做准備
它說處理的是有#標識的代碼,如講include的文件進行拷貝、#define的條件編譯等等!關於預編譯的介紹你可以到網路里進行查看,裡面有詳細的介紹!http://ke..com/view/176610.htm