『壹』 初學c語言時,輸入程序後運行,是執行還是預編譯預編譯是什麼為什麼最開始要有#include如
預編譯是把一個工程中較穩定的代碼預先編譯好放在一個文件里.這些預先編譯好的代碼可以是任何的C/C++代碼。而輸入程序後的運行,只是將代碼編譯成了obj(object)文件,所有obj文件經鏈接(link)成為可執行文件。而你說的執行,應該就是點擊最後生成的.exe文件了。開始要有的#include,是表明要包含的頭文件,或者其它的保存的代碼文件。只有這樣,你才可以引用到那個文件中的代碼,來供目前的文件來使用。
至於你說的什麼大型游戲的編程,應該也是這樣的一套,因為C語言就是上述生成文件的套路。游戲的編程,初學的話可以建議看《游戲編程入門》( 美 哈本),這本書基於windows平台,是為幾乎沒有游戲開發經驗的初學者寫的,循序漸進,從2D講到3D 的一些基本技術,其中的例子也非常經典,看完書基本就可以做出不錯的2D 游戲了,也有了一定的3D基礎了,之後再看一些深入的書籍像《Windows游戲編程大師技巧》。
『貳』 如何定義預編譯選項, 在什麼文件里定義要用的變數名字。
一般在頭文件裡面定義預編譯變數和函數,如:
#define a 1
#define max(a,b) a>b?a:b
『叄』 JavaScript對var變數和function定義的函數進行"預編譯處理"(賦值式函數是不會進行預編譯處理的)
這個運行結果肯定是正確的。
你定義的函數var d=function(){};是一個函數表達式,這與函數聲明是不一樣的,函數聲明是提前預解析的,但是函數表達式是不可以預解析的。所以你第一次運行alert(typeof d);這里的d是一個未聲明的變數,對於一個未聲明的變數只能用typeof進行操作,而且返回值都是undefined。第二次運行alert(typeof d);的時候,函數表達式已經定義了,所以返回的function。
『肆』 什麼是預編譯和實時編譯
預編譯就是在你代碼編譯之前做的一些動作,比如你代碼里寫了
#define size 10
int a[size];
預編譯就會把這個size替換掉
int a[10];
實時編譯,一般是指那些動態語言,在執行到該代碼的時候進行編譯,例如
scipy.weave 裡面可以嵌入C代碼,並在程序的執行過程中,調用gcc編譯器把這段C代碼編譯成二進制,並調用其中的函數執行。
『伍』 內聯函數和預編譯命令有什麼區別
內聯函數只是為了減少函的跳轉來提高程序運行效率的方式。
『陸』 c語言問題 函數與編譯預處理
#include<stdio.h>
intk;
main()
{
intfun(intk);//如果函數定義在使用位置之後要提前聲明函數
k=3;
k=fun(k);//將k初始值傳遞過去再將返回來的函數值重新賦值給k
printf("k=%d ",k);
}
intfun(intk)
{
k=k*k;
returnk;//要返回計算得出的k值
}
建議:為了方便閱讀,建議更改一下
#include<stdio.h>
intk;
main()
{
intn;
intfun(intk0);//如果函數定義在使用位置之後要提前聲明函數,而且函數要有返回值類型
k=3;
n=fun(k);//用n接收返回來的函數值
printf("k=%d ",n);
}
intfun(intk0)
{
intk1;
k1=k0*k0;
returnk1;//要返回計算得出的k值
}
補充:函數定義格式: 返回值類型 函數名(形參);形參可要可不要,形參類型個數和函數返回值類型視情況而定
『柒』 請教VC的頭文件預編譯流程比如stdafx.h是不是告訴處理器下面用到的函數要去stdafx.cpp里找
不是,你看看stdafx.cpp就知道了,默認生成時裡面只有一句話
#include "stdafx.h"
反而是在stdafx.h裡麵包含了很多常見頭文件
『捌』 c語言編程(函數和預編譯單元習題)
均值、方差、最大值與最小值、順序查找、排序,這幾個功能模塊用switch實現,功能模塊可以通過編寫相應的函數調用實現。
『玖』 什麼是預編譯,何時需要預編譯
預編譯又稱為預處理,是做些代碼文本的替換工作
預編譯又稱為預處理,是做些代碼文本的替換工作
處理#開頭的指令,比如拷貝#include包含的文件代碼,#define宏定義的替換,條件編譯等
就是為編譯做的預備工作的階段
主要處理#開始的預編譯指令
預編譯指令指示了在程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。常見的預編譯指令有:
(1)#include 指令
該指令指示編譯器將xxx.xxx文件的全部內容插入此處。若用<>括起文件則在系統的INCLUDE目錄中尋找文件,若用" "括起文件則在當前目錄中尋找文件。一般來說,該文件是後綴名為"h"或"cpp"的頭文件。
注意:<>不會在當前目錄下搜索頭文件,如果我們不用<>而用""把頭文件名擴起,其意義為在先在當前目錄下搜索頭文件,再在系統默認目錄下搜索。
(2)#define指令
該指令有三種用法:
第一種是定義標識,標識有效范圍為整個程序,形如#define XXX,常與#if配合使用;
第二種是定義常數,如#define max 100,則max代表100(這種情況下使用const定義常數更好,原因見注1);
第三種是定義"函數",如#define get_max(a, b) ((a)>(b)?(a):(b)) 則以後使用get_max(x,y)就可以得到x和y中較大的數(這種方法存在一些弊病,見注2)。
第四種是定義"宏函數",如#define GEN_FUN(type) type max_##type(type a,type b){return a>b?a:b;} ,使用時,用GEN_FUN(int),則此處預編譯後就變成了 max_int(int a,int b){return a>b?a:b;},以後就可以使用max_int(x,y)就可以得到x和y中較大的數.比第三種,增加了類型的說明。
(3)#if、#else和#endif指令
這些指令一般這樣配合使用:
#if defined(標識) //如果定義了標識
要執行的指令
#else
要執行的指令
#endif
在頭文件中為了避免重復調用(比如說兩個頭文件互相包含對方),常採用這樣的結構:
#if !(defined XXX) //XXX為一個在你的程序中唯一的標識符,
//每個頭文件的標識符都不應相同。
//起標識符的常見方法是若頭文件名為"abc.h"
//則標識為"abc_h"
#define XXX
真正的內容,如函數聲明之類
#endif