2010-12-20 28 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> 

はどこにそのバイトがから来るのでしょうか?

+1

1で定義されています。 – RBerteig

答えて

25

私はそれがWindowsからだと思います。

バイト(8ビット)。

次のようにこのタイプはWinDef.hに宣言されている:

unsigned char型のBYTEのtypedef

+5

そして、使用しないでください。すべての大文字の整数/文字列型は、不要なコードをWindowsに結びつけるだけの役目をする無用なコードuglificationです。 'unsigned char'や' uint8_t'のような対応する標準型を使うだけです(後者があれば同じでなければなりません)。 –

+1

2010年までVisual Studioにstdintが追加されませんでした。 –

+10

WINAPI関数を使用している場合は、Windowsのデータ型を使用する必要があります。 http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/c066968d-8cb7-4e5a-9807-aa9cd47c65ed –

5

ほぼ確実に、多くのヘッダーのうちの1つがwindows.hに含まれています。 Windows SDKには、少なくともWindows 2.0日(最古のWindows SDKがあると思います)以降、​​、WORD、およびDWORDにはtypedefが含まれています。

10

Windows用のCをプログラミングする場合は、Visual Studioを使用して開発していると仮定します。 任意のキーワードでを右クリックし、を選択してください。F12で定義されています。

BYTEは明確に質問を述べるだけでなく、便利な答えを提供するのに十分なコンテキストを提供するためのWinDef.h

typedef unsigned char  BYTE; 
関連する問題