zoukankan      html  css  js  c++  java
  • 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 //将我传入的类名 转成字符串
  • 相关阅读:
    hdu 1003 dp最大子序列和
    模拟题 (+queue队列知识)
    hdu 1016 DFS
    OSGi 系列(二)之 Hello World
    OSGi 系列(一)之什么是 OSGi :Java 语言的动态模块系统
    Mina 系列(四)之KeepAliveFilter -- 心跳检测
    Mina 系列(三)之自定义编解码器.md
    Mina 系列(二)之基础
    Mina 快速入门
    Java 8 Optional 类深度解析
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8316716.html
Copyright © 2011-2022 走看看