首页  >  问答  >  正文

请问这个c++是什么意思

#define VMSDISPOSITION_SIZE    31
typedef struct _VMSDISPOSITION
{
    BYTE MajorVersion;
    BYTE MinorVersion;
    VMSDATE BuildDate;
    WORD DisplayWidth;
    WORD DisplayHeight;
    BYTE PrimaryColors;
    BYTE BitsPerColor;
    DWORD TotalDiskSpace;
    DWORD FreeDiskSpace;
    VMSDATETIME LastResetTime;
}VMSDISPOSITION;

我知道这是一个结构体 #define VMSDISPOSITION_SIZE 31 这句是什么意思 还有VMSDISPOSITION_SIZE 和31是什么意思?

高洛峰高洛峰2714 天前574

全部回复(5)我来回复

  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:44:30

    #define VMSDISPOSITION_SIZE    31

    简答来讲,这实际上是一个赋值操作,也就是说VMSDISPOSITION_SIZE=31,而它有一个比较牛逼的名字叫做宏定义,或者你也可以理解它为定义一个常量。而这个宏定义和赋值又有什么区别?编译器在对这段代码进行编译的时候,会自动将VMSDISPOSITION_SIZE替换成31,假如有cout<<VMSDISPOSITION_SIZE,那编译器会自动将VMSDISPOSITION_SIZE替换成31。

    而宏定义也不止这一种只能定义数字这一项功能,还可以定义语句,比如#define VMSDISPOSITION_SIZE cout<<"hello world!";,那么当编译器遇到VMSDISPOSITION_SIZE的时候,会自动将VMSDISPOSITION_SIZE替换为cout<<"hello world!";

    回复
    0
  • PHPz

    PHPz2017-04-17 13:44:30

    #define VMSDISPOSITION_SIZE 31

    就是一个宏定义,其表示的意思是在这后面的代码中,所有的VMSDISPOSITION_SIZE都会在预处理阶段替换成31.
    也就是后面出现的VMSDISPOSITION_SIZE你都可以看作是31

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 13:44:30

    按照字面意思

    sizeof(VMSDISPOSITION) = 31,为了方便是用,所以定义

    define VMSDISPOSITION_SIZE 31

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-17 13:44:30

    定义了一个宏,让VMSDISPOSITION_SIZE等于31。以后需要用到31的地方就用VMSDISPOSITION_SIZE这个代替了,如果需要修改,直接修改这个宏的值就可以了。即使代码很多,也不会有漏掉的现象,方便使用。这个值是个常量,在程序中是不可以改变的。

    回复
    0
  • 迷茫

    迷茫2017-04-17 13:44:30

    宏定义
    相当于数学里面的等量替换作用。
    平常多看书。

    回复
    0
  • 取消回复