#include <ctype.h>//字符处理
#include <errno.h>//定义错误码
#include <float.h>//浮点数处理
#include <fstream.h>//文件输入/输出
#include <iomanip.h>//参数化输入/输出
#include <iostream.h>//数据流输入/输出
#include <limits.h>//定义各种数据类型最值常量
#include <locale.h>//定义本地化函数
#include <math.h>//定义数学函数
#include <stdio.h>//定义输入/输出函数
#include <stdlib.h>//定义杂项函数及内存分配函数
#include <string.h>//字符串处理
#include <strstrea.h>//基于数组的输入/输出
#include <time.h>//定义关于时间的函数
#include <wchar.h>//宽字符处理及输入/输出
#include <wctype.h>//宽字符分类
像 afx.h 文件。漏写了许多反斜杠。反斜杠 表示下面的行应当和本行在同一行。
宏 [#define 这串字符串 一大堆东西]
作用是以后遇到 这串字符串 就替换为 一大堆东西。
#define DECLARE_DYNAMIC(class_name) 反斜杠一大堆东西
因为有(class_name),叫 变参宏,
这串字符串 是 DECLARE_DYNAMIC(变参),替换作业时,一大堆东西里的 class_name 也要用 实参 代替。
#ifdef _AFXDLL
#define DECLARE_DYNAMIC(class_name) 反斜杠一大堆东西
#else
#define DECLARE_DYNAMIC(class_name) 反斜杠 另外一大堆东西
#endif
如果定义了 _AFXDLL,则 这串字符串 用 一大堆东西 替换,class_name 也用实参替换
否则,这串字符串 用 另一大堆东西 替换,class_name 也用实参替换
## 表示 前后两 token 连接
读一下参考资料,了解 # 和 ## 应用,如何做宏替代。
是一种批量处理的称谓。计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。
“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。
计算机语言如C语言或 汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C语言的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C程序员可以获得更精巧的宏。
在Objective-C语言源程序中,允许用一个标识符来表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去替换,这称为宏替换或宏展开。
宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。在Objective-C语言中,宏分为有参数和无参数两种。
扩展资料
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65
Hxx P#xx Qxx
Rxx格式输入的,xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM #xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量。
一般OTD系有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据。我们如果说#100=30那么现在#100地址内的数据就是30了。
B类宏能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。
参考资料来源:百度百科——宏程序
参考资料来源:百度百科——宏定义
参考资料来源:百度百科——宏命令