问题:
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 sex;问题:
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 sex;
Int age;
Float score;
}stu1, *ps, stu[5]; /*定义结构体类型的普通变量、指针变量和数组*/
Typrdef strcut [student]
{
Char name[10];
Char sex;
Int age;
Float score;
}STU;
STU stu1, *ps, stu[5];
4. Strcut
{
Char name[10];
Char sex;
Int age;
Float score;
}stu[2] = {{“Li”, ‘F’, 22, 90.5},{“Su”, ‘M’, 20, 88.5}};
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
}