結構體和巨集定義

2021-08-15 03:46:34 字數 2881 閱讀 4327

問題:

1.#define?

2.#define m (y * y + 3 * y)?

3.巨集定義在」」中?

4.巨集定義允許巢狀?

5.#include<>和

#include」」?

6.條件編譯?

7.結構體?

8.結構體賦初值?

9.引用結構體變數中的成員?

10.記憶體位元組對齊?

解答:1. #define 識別符號 字串;

#號開頭的都是預處理命令;

define

為巨集定義命令;「識別符號」為定義的巨集名;「字串

可以是常量、表示式、格式串。

2.在此巨集定義中

m替換的是

(y * y + 3 * y)

而不是y * y + 3 * y。

3.#define ok 100

int main()

printf(「ok」);

printf(「\n」);

巨集名在源程式中若用引號括起來,則預處理程式不對其進行巨集定義代換。

4. #define pi 3.1415926

#define s pi * y * y

已經定義的巨集定義允許巢狀,巨集展開是由預處理程式層層代換。

5. <>:表示在包含檔案目錄中去查詢(包含目錄是由使用者在設定環境是設定的),而不在源 檔案目錄中查詢。

「」:表示首先在當前源檔案目錄中查詢,若未找到才到原始檔中查詢。

6. #ifdef 識別符號(

#ifndef

識別符號)(

#if

常量表示式)

程式段 1

#else

程式段 2

#endif

7. struct j結構體名

型別名1 成員名1;

型別名2 成員名2;

型別名n 成員名n;

strcut student

char name[10];

char ***;問題:

1.#define?

2.#define m (y * y + 3 * y)?

3.巨集定義在」」中?

4.巨集定義允許巢狀?

5.#include<>和

#include」」?

6.條件編譯?

7.結構體?

8.結構體賦初值?

9.引用結構體變數中的成員?

10.記憶體位元組對齊?

解答:1. #define 識別符號 字串;

#號開頭的都是預處理命令;

define

為巨集定義命令;「識別符號」為定義的巨集名;「字串

可以是常量、表示式、格式串。

2.在此巨集定義中

m替換的是

(y * y + 3 * y)

而不是y * y + 3 * y。

3.#define ok 100

int main()

printf(「ok」);

printf(「\n」);

巨集名在源程式中若用引號括起來,則預處理程式不對其進行巨集定義代換。

4. #define pi 3.1415926

#define s pi * y * y

已經定義的巨集定義允許巢狀,巨集展開是由預處理程式層層代換。

5. <>:表示在包含檔案目錄中去查詢(包含目錄是由使用者在設定環境是設定的),而不在源 檔案目錄中查詢。

「」:表示首先在當前源檔案目錄中查詢,若未找到才到原始檔中查詢。

6. #ifdef 識別符號(

#ifndef

識別符號)(

#if

常量表示式)

程式段 1

#else

程式段 2

#endif

7. struct j結構體名

型別名1 成員名1;

型別名2 成員名2;

型別名n 成員名n;

strcut student

char name[10];

char ***;

int age;

float score;

}stu1, *ps, stu[5];                /*定義結構體型別的普通變數、指標變數和陣列*/

typrdef strcut [student]

char name[10];

char ***;

int age;

float score;

}stu;

stu stu1, *ps, stu[5];

4. strcut

char name[10];

char ***;

int age;

float score;

}stu[2] = ,};

5.  結構體變數名              「stu1.name」

結構體指標變數->成員名   「ps->name」

(*結構體指標變數

).成員名   「

(*ps).name」

結構體變數陣列名.成員名   「

stu[0].name」

6. typtdef strcut t

char c;    //本身長度

1位元組

= 8

_int64;    //本身長度

8位元組

= 8

int e;     //本身長度

4位元組

= 4

short f;    //本身長度

2位元組

= 2

char g;    //本身長度

1位元組

= 2

short h;   //本身長度

2位元組

= 8

在結構體中定義巨集定義意義

第一次看見在結構體中有巨集定義,開始有點迷糊,想到該結構是如何儲存的?巨集定義會是不會多次編譯?以下是我看的乙個列子 typedef struct define xcp authorized bit 0x01 uint16 t xcpauthorizedbit 1 define block resp...

定義在結構體裡面的巨集

測試 如下 include struct test void func define st define 20 int main int argc,char ar 輸出 1 10 20總結 1 巨集定義在結構體裡面,只是方便 的閱讀,一般這種情況,大部分是結構體裡面有標誌量,方便閱讀。2 在結構體裡...

定義在結構體裡面的巨集

1 巨集定義在結構體裡面,只是方便 的閱讀,一般這種情況,大部分是結構體裡面有標誌量,方便閱讀。2 在結構體裡面定義乙個巨集,在結構體外面也可以定義同樣的巨集,如果兩個巨集的內容不一樣,那麼在使用的地方,哪個巨集近就使用哪個。編譯會有警告 巨集就是替換,從上面開始,一直往後面替換。如果巨集新定義了,...