C語言,這個問題(編譯預處理)有點看不懂??

發布 教育 2024-05-01
9個回答
  1. 匿名使用者2024-02-08

    巨集定義在執行前被替換,順序預設是從內到外,所以你上面的 **df(f(b,a)) 會先變成 df(b>a?(b a) :(b%a)),然後 df 的外層變為。

    2*b>a?(b/a):(b%a)

    如果想先得到 f 的結果,然後再計算 df,有很多方法可以做到這一點,比如最簡單的就是定義 df(k) 2*k。

    #define df(k) 2*(k)

    這樣頂部就會成為。

    2*(b>a?(乙a):(b%a))結果是 16 注意:在定義巨集時,可以使用和來控制順序,但一般不多,有興趣可以了解一下。

  2. 匿名使用者2024-02-07

    因為 C 編譯器在看到定義然後編譯時會進行必要的替換。

    見f(b,a)改為:b>a?(b/a):

    b%a) 參見 df(f(b,a)) 替換為: 2*b>a?(b/a):

    b%a) 等同於你在程式中寫的:x=2*b>a?(b/a):

    b%a);謹慎的做法是不要錯誤地將定義放在括號內,例如:

    #define f(a,b) (a>b?(a b):(a%b)) 定義 df(k) (2*k) 定義為 2*(k)。

  3. 匿名使用者2024-02-06

    預處理指令以 開頭,字首主要有四種型別: 1巨集觀定義,定義; 2.

    糞便包含包括; 3.條件編譯、ifdef 等; 4. 編譯器控制 pragma para 命令。 掌握這四把棗葉幾乎是一樣的。

  4. 匿名使用者2024-02-05

    預處理階段主要是處理巨集指令,如include指令、define指令、條件編譯指令等。

    編譯階段主要是檢查C語言程式的語法錯誤,即編寫的**是否符合C語言的規則,並基於此進行編譯。 c原始檔被編譯為單元。 obj 檔案(或 IS. o 檔案)。

    指標異常、陣列下標越界,這些錯誤都是語義錯誤,只有在執行時才能發現,這些也叫執行時錯誤。

  5. 匿名使用者2024-02-04

    預編譯是將專案中比較穩定的預編譯放到乙個檔案中。 這些預編譯的**可以是任何 C C++**。 進入程式後,只需將**編譯成乙個obj(物件)檔案,所有obj檔案都鏈結成乙個可執行檔案。

    你說的執行應該通過點選最後乙個來生成。 exe 檔案。 開頭的 include 表示要包含的標頭檔案或其他儲存的檔案。

    只有這樣,您才能引用該檔案中的 ** 以在當前檔案中使用。

    至於你提到的大遊戲的程式設計,應該是這樣的,因為C語言是上面生成檔案的例程。 遊戲程式設計,初學者可以推薦閱讀《遊戲程式設計導論》(Mei Haben),本書基於Windows平台,是為遊戲開發經驗很少甚至沒有經驗的初學者編寫的,一步一步,從2D到3D的一些基礎技術,例子也非常經典,看完這本書,你基本上可以做出乙個好的2D遊戲, 並且有一定的3D基礎,然後閱讀一些深入的書籍,例如“Windows遊戲程式設計大師技能”。

  6. 匿名使用者2024-02-03

    當我剛開始學習時,我繼續閱讀,並且有解釋。

  7. 匿名使用者2024-02-02

    你是自學成才的嗎? 我在課堂上都談過這些。

  8. 匿名使用者2024-02-01

    1.是的,obj檔案中有一段資訊。

    2.不可以,堆是執行時在執行時分配給你的(Windows下的VC執行庫其實就是系統提供的堆),系統在堆疊執行時分配給你,編譯後的obj中沒有堆疊有多大的資訊(這是在鏈結時新增的)。

    當未啟用動態基址時,全域性變數的邏輯位址保持不變的說法是正確的,並且每次將 exe 載入到記憶體中時,相同的全域性變數都位於同一位置。 但是,在 Windows 中啟用動態基址後,exe 可能每次都會載入到不同的位址,此時全域性變數的記憶體位址會發生變化。

  9. 匿名使用者2024-01-31

    1 個 OBJ 檔案執行時,為您分配的執行時(其實在 Windows VC 執行時系統堆下)的片段資訊。

    堆,堆疊執行,系統分配給你,裡面實際編譯了obj堆疊段等資訊(這個鏈結,去)。

    全域性變數是不可變的,並且此語句不對正確的動態基址開放,將來每個 exe 檔案都會載入到記憶體中,並在同一位置使用邏輯位址(全域性變數)載入到記憶體中。 但是,開啟視窗到動態基址,每次exe檔案都可能被載入到不同的位址,這將改變全域性變數的記憶體位址。

相關回答
6個回答2024-05-01

在 C 語言中,所有預處理命令都以 “ ” 符號開頭。 >>>More

12個回答2024-05-01

轉義字元是 C 語言中字元表示的一種特殊形式。 轉義字元通常用於表示 ASCII 字符集中不可列印的控制字元和特定於函式的字元,例如單撇號(用於表示字元常量'),用於表示雙撇號 (")和反斜槓(等。 轉義字元由反斜槓後跟字元或八進位或十六進製數表示。 >>>More

4個回答2024-05-01

2. 1、對 2、錯(只有乙個程式) 3、錯(不一定) 4、對。 >>>More

6個回答2024-05-01

步驟如下,大家可以貼上你的**,大家**那裡有錯誤,ACM的問題要注意格式,弄錯格式是錯誤的。 >>>More

10個回答2024-05-01

下面是使用 C++ 為給定規則實現數字刪除操作的示例 >>>More