70)宏的基本操作
1)一个基本的样例 就是你在建立.cpp文件和.h文件时,会有那个#pragma once
还有下面的代码:
1 //.h文件 中的内容 2 3 #pragma once//为了兼容C++编译器 4 5 6 //下面这个是为了兼容C编译器 7 #ifndef __.h的文件名字的大写__ 你看就是普通的理解 要是没有定义(也就是没有编译“__.h的文件的名字的大写__”,
就执行下面的代码,你看啊,要是 你已经编译过了 那么也就是这个宏定义过了 ,
那么再编译相同的代码部分了 8 #define __.h的文件名字的大写__ 9 10 11 12 13 14 //中间代码内容 15 16 17 #endif
2)其实对于宏的知识 还有很多的知识点
1)其实在C++的部分,,很多的有实际意义的数字都是用宏的,比如 我们的IWin32的WM_LBUTTONDOWN或者别的
2)宏用来单纯的替换
1 #define MM for(int i=0;i<10;i++)cout<<i<<endl; 2 3 //这个MM就是代表了 for(int i=0;i<10;i++)cout<<i<<endl; 这一段代码,注意 宏就是单纯的替换
3) 在 (2)中很长 我可以这样写:
反斜杠 表示 下一行和上一行拼接 的意思
1 #define MM()\ 注意这个反斜杠后面 不能加任何东西,包括注释和空格都不行 2 for(int i=0;i<10;i++)\ 3 cout<<i<<endl;
4)带参数的宏
1 #define BBB(ThisClass)\ 2 ThisClass AA;\ 3 AA.show(); 4 5 6 //表示实例化一个类 那个ThisCLass就是你传入的类名
5)## 表示字符串拼接
1 #define BB(ThisClass)\ 2 ThisClass ps##ThisClass;\ 3 ps##ThisClass.show(); 4 5 6 7 8 //单纯的拼接字符串
6)#是将传的参数变成 字符串
1 #define BB(ThisClass)\ 2 cout<<#ThisClass<<endl; 3 4 5 6 //将我传入的类名 转成字符串