2010-12-20 4046 views
21

我移植頭同意本聲明:哪個C/C++頭文件定義了BYTE數據類型?

struct tMaterialInfo {  
    char strName[255]; // the texture name 
    char strFile [255]; // the texture 
    BYTE color [3]; // the color of the object 
}; 

頭具有以下包括:

#include <windows.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <fstream> 
#include <vector> 
#include <gl\gl.h> // Header File For The OpenGL32 Library 
#include<gl\glu.h>// Header File For The GLu32 Library 
#include <gl\glaux.h> 

在這情況下BYTE從何而來?

+1

+1定義明確說明的問題,以及提供足夠的上下文提供一個有用的答案。 – RBerteig 2010-12-20 01:12:05

回答

25

我猜這是從Windows

一個字節(8位)。

此類型在WINDEF.H聲明如下:

的typedef無符號字符BYTE;

+5

而且應該補充說不應該使用它。所有大寫整數/字符串類型都是無用的代碼醜化,僅用於使代碼不必要地與Windows綁定。只需使用相應的標準類型,如'unsigned char'或'uint8_t'(如果後者完全相同,它們必須相同)。 – 2010-12-20 01:49:06

+1

直到2010年,stdint才被添加到Visual Studio中。 – 2010-12-20 01:53:22

+10

如果您使用的是WINAPI函數,則應該使用Windows數據類型。 http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/c066968d-8cb7-4e5a-9807-aa9cd47c65ed – 2010-12-20 02:01:23

5

幾乎可以肯定地從包含從windows.h包括的許多標題之一。至少在Windows 2.0的日子裏(我記得最早的Windows SDK),Windows SDK包含typedef的​​,WORDDWORD

10

如果您正在爲Windows編程C,我假設您正在使用Visual Studio進行開發。您可以右鍵點擊的任何關鍵字並選擇轉到定義F12找到它的定義。

字節是WINDEF.H

typedef unsigned char  BYTE; 
相關問題