搜尋

首頁  >  問答  >  主體

请问这个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是什么意思?

高洛峰高洛峰2805 天前633

全部回覆(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
  • 取消回覆