2010-12-20 12 views
21

jestem przenoszenie nagłówek z niniejszym oświadczeniem:Który plik nagłówkowy C/C++ definiuje typ danych BYTE?

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

Nagłówek ma następujące obejmuje:

#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> 

Skąd że BYTE pochodzi?

+1

+1 za jasno stwierdzające pytanie, a także zapewnienie wystarczającej kontekst dostarczenie użytecznej odpowiedzi. – RBerteig

Odpowiedz

25

Zgaduję, że to od Windows.

Bajt (8 bitów).

Ten typ jest zadeklarowany w WinDef.h następująco:

typedef unsigned char BYTE;

+5

Należy dodać, że nie należy go używać. Wszystkie typy liczb całkowitych/łańcuchów typu all-caps są bezużytecznymi pojęciami kodu, które służą jedynie do niepotrzebnego powiązania kodu z systemem Windows. Po prostu użyj odpowiednich standardowych typów takich jak 'unsigned char' lub' uint8_t' (które muszą być identyczne, jeśli w ogóle istnieje). –

+1

Stdint nie został dodany do Visual Studio do 2010 roku. –

+10

Jeśli używasz funkcji WINAPI, powinieneś używać typów danych Windows. http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/c066968d-8cb7-4e5a-9807-aa9cd47c65ed –

5

Prawie na pewno z jednego z wielu nagłówków zawartych od windows.h. Pakiet Windows SDK zawierał typedef s dla BYTE, WORD i DWORD od co najmniej Windows 2.0 dni (najwcześniejsze SDK systemu Windows, które pamiętam).

10

Jeśli programujesz C dla Windows, zakładam, że używasz Visual Studio do opracowania. Możesz kliknąć na jedno kliknięcie prawym przyciskiem myszy i wybrać Przejdź do definicjiF12, aby znaleźć miejsce, w którym zostało zdefiniowane.

BYTE jest zdefiniowana w WinDef.h

typedef unsigned char  BYTE; 
Powiązane problemy