预处理与结构体简述
来源:互联网 发布:dns 多域名 同一ip 编辑:程序博客网 时间:2024/05/22 03:00
1. 宏定义:(宏定义时必须小心,保证宏代换之后不会有错,因为预处理程序对宏不做检查。
宏定义在函数外,其作用域从宏定义开始到源程序结束,如果要终止其作用域, 用#undef命令即可)
无参宏定义:#define
‘#’代表这是条预处理命令,define为宏定义命令
格式:#define 标识符 字符串(数值)
带参宏定义;相当于一个自定义函数
格式:#define 宏名(形参表) 字符串
带参宏定义中,形式参数不分配内存单元,而宏调用时,实参有具体的值,实参需要作类型说明。
带参宏仅仅做符号代换,不存在值传递问题。
2. 文件包含:(将指定的文件插入该处命令行处代替该命令行,从而把指定的文件和当前源文件连成一个源文件)
例如:#include<stdio.h>
#include”math.h”
区别在于:“”在当前文件目录下找文件
<>在系统指定文件目录下找文件
3. 条件编译:(按照不同的条件去编译不同的程序部分)
格式1:#ifdef标识符
程序段1
#else
程序段2
#endfif
如果标识符被定义了就执行程序段1,否则执行程序段2
格式2:#ifndef标识符
程序段1
#else
程序段2
#endfif
如果标识符未被定义了就执行程序段1,否则执行程序段2
格式3:#if常量表达式
程序段1
#else
程序段2
#endfif
如果常量表达式的值非0,则执行程序段1,否则执行程序段2
4. 结构体:(将相关联的数据打包成一个整体,传输时传输整个整体)
一般格式1:struct结构体名
{
类型名1 成员名1;
类型名2 成员名2;
类型名3 成员名3;
。。。。。。
};
格式2:struct结构体名
{
类型名1 成员名1;
类型名2 成员名2;
类型名3 成员名3;
。。。。。。
};
Struct 结构体名 / *结构体名简写;
5. #define 和 typedef
宏定义只是简单的字符替换,而typedef可以让新命名的标识符能更改定义的变量。
- 预处理与结构体简述
- 预处理与结构体
- 黑马程序员_C_结构体与预处理
- 预处理,结构体
- 预处理、结构体预习
- 预处理、结构体
- 预处理,结构体
- ios 结构体简述
- iOS笔记之_C语言结构体与预处理
- 第七章预处理与结构体十个问题及解答
- 学习Linux C编程之预处理与结构体
- 结构体对齐预处理指令
- C语言-预处理、结构体
- 预处理和结构体2
- 关于预处理和结构体
- 打印 DEVMODE 结构体 简述
- vb与c#语法结构不同简述
- 简述结构
- 四种古典密码的C++实现(4)-----Caesar密码
- 安卓自定义View之画图
- [i.MX6Q][QNX Neutrino 6.6.0]调试笔记------Buildfile
- Android Studio cannot launch avd in emulator问题解决
- STL空间配置器的剖析
- 预处理与结构体简述
- Java排序之归并排序
- DrawerLayout自定义侧拉 简单实现
- DES密码的C++实现
- java List 排序
- MTK GPIO口的定制
- Spring Boot Actuator简介
- linux c 一站式学习 C语言中数组名和指针的区别
- 我的第一篇博客