C巨集定義問題,我不明白

發布 科技 2024-06-05
8個回答
  1. 匿名使用者2024-01-29

    很多人在閱讀**時都感到焦慮,乙個地方和他們想象的不一樣,開始懷疑,以為出現了什麼神奇的東西,但實際上,這只是語法中最基本的東西的結合。

    巨集是替換,因此開啟的程序被以下段落替換。

    ctl 程式碼也看起來像乙個巨集,查詢它並檢視這是什麼。 但是,語法不排除這是乙個函式。 至於寫長,這只是意味著巨集或函式呼叫返回乙個長型別的東西。

  2. 匿名使用者2024-01-28

    似乎檔案裝置未知,方法緩衝,檔案任何訪問也是巨集。

    符號是一行延續,即下一行被認為是行的內容。

    CTL 程式碼使用位運算子將四個引數合成為乙個數字,看起來是 32 位,那麼最後 32 位數字的前 16 位是 deviceType,接下來的兩位是 access,接下來的 12 位是函式,最後兩位是方法。

  3. 匿名使用者2024-01-27

    C C++ 中的巨集定義是定義乙個符號常量,它用於定義一種符號資訊來表示一些特殊資訊,使源更具可讀性,同時也可以提高系統的可移植性。 巨集定義在編譯時進行解釋和替換,實際操作中沒有巨集定義符號。 一般變數或常量的定義在正在執行的系統中具有自己的記憶體空間、訪問許可權和生存期。

    巨集定義常量。

    #define pi

    注意:1.符號常數和值2之間沒有等號。該語句不需要以分號結尾。

    例如:define pi = 語法沒有大問題,但應用中可能會有錯誤,編譯時所有 pi 都會被替換為 '='

    #define pi ;語法沒有大問題,但應用中可能會出現錯誤,編譯時所有 pi 都會被替換為 ';

    變數定義。 double pi= ;定義變數 pi 會在記憶體中為變數 pi 分配乙個空間,該空間儲存在空間中,並且 pi 值可以在使用中隨時更改,例如:pi=;

    常量定義。 const pi= ;因為沒有寫型別,所以預設是int型別,所以這裡的pi值實際上是3

    const double pi= ;正確定義浮點常量。

    常量和變數的區別在於,一旦定義了常量,就不能修改了! 如果在使用過程中修改 PI,則在編譯或執行時會發生錯誤,例如 VC6 錯誤

    error c2166: l-value specifies const object

    常量和巨集定義常量的區別在於,巨集定義在預處理階段會用定義定義的內容替換 ** 中對應的識別符號(編譯時替換,編譯後巨集消失)。 因此,當程式執行時,常量表中沒有定義 define 的常量,系統不會為其分配記憶體。

    由 const 定義的常量,當程式執行時,常量位於常量表中,系統為其分配記憶體。

  4. 匿名使用者2024-01-26

    要說其實沒有區別,主要是為了方便使用,巨集觀定義是乙個常數,一般定義可以是常量也可以是可變的,另外,一般巨集觀定義是全域性的,可以任意引用,一般定義有一定的範圍。

  5. 匿名使用者2024-01-25

    define pi= 在編譯時替換雙 pi= 變數,該變數可以重新賦值。

    在這兩種情況下,當 pi 被多次使用時,它是由乙個巨集定義的,即定義 pi=

    const double pi=;常量變數,無法重新賦值。

  6. 匿名使用者2024-01-24

    define pi= 在編譯時替換。

    以下是在執行時分配單位的方法。

    double pi=;變數,可以重新賦值 const double pi=; 常量變數,無法重新賦值。

  7. 匿名使用者2024-01-23

    define pi= 在編譯時替換。

    下面是執行時間分配單元。

    雙 pi= 變數可以重新分配。

    const double pi= 無法重新賦值常量變數。

    簡單地說,double 可以重新分配,而 const 不能重新分配。

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

    生活領域和分配空間之間的區別。

    定義定義,巨集將從當前檔案生效,直到當前檔案結束。

    並且編譯時會進行巨集擴充套件,Pi會自動被編譯器替換,並且不會分配空間,double和const的定義將遵循變數生存域的一般原則。 也就是說,從當前到下乙個" }".

    void test()

    這是 k 生存域的結束。

    double 為變數分配空間,const 為全域性資料區域分配常量。

    由於定義定義沒有空間,因此不能將指向巨集的指標分配給變數或常量。

    編譯時替換,因為在將原始檔轉換為可執行檔案時,需要先編譯和鏈結,然後才能生成可執行檔案(exe),也就是說,在這個過程中,編譯器直接將巨集擴充套件到定義的內容中。

相關回答
18個回答2024-06-05

為了解決這個問題,C++建立了這個指標,這是乙個特殊的指標,它指向它所在的類,所以。 >>>More

12個回答2024-06-05

int q2, *q1;回顧過去,Q2 是 int,Q1 是 int*。

14個回答2024-06-05

它是將 DAT 的值儲存在加法器位址上,注意它是乙個 16 位無符號數字。 >>>More

8個回答2024-06-05

sheets("原始資料").選擇以選擇原始資料表。

columns("c:bk").選擇“C:BK”列。 >>>More

11個回答2024-06-05

你好,巨集是用來預編譯的,沒有實質的東西,只是為了自己的好看,好讀等。 只是乙個完整的替代。 或者方便的**移植或類似的東西。 >>>More