说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

此问题长期有效,我先出100分,可以加到1000分!!请大家列举出您所知道的数据类型,及简短的说明。如C++中的,Delphi中的,API中的。绝对加分!!

编辑:说三道四文库 发布时间:2018-06-18 06:26
HTML文档下载 WORD文档下载 PDF文档下载
我先说几个Delphi(Pascal)和C中的吧:

常用的Integer(int),string(它好像是Delphi或BCB特有的),pchar(char *),
WideString(w_char *,以及WIN2K中的UNICODE)
int 整型
char *
time_t
...
...
WORD unsigned int
DWORD unsigned long
LONG long
INT  int
COLORREF unsigned long
int,float,double,bool,void,char,
variant

会得分吗?
UNIT是什么类型?LPCSTR又是什么?
BOOL   A Boolean value.

BSTR   A 32-bit character pointer.

BYTE   An 8-bit integer that is not signed.

COLORREF   A 32-bit value used as a color value.

DWORD   A 32-bit unsigned integer or the address of a segment and its associated offset.

LONG   A 32-bit signed integer.

LPARAM   A 32-bit value passed as a parameter to a window procedure or callback function.

LPCSTR   A 32-bit pointer to a constant character string.

LPSTR   A 32-bit pointer to a character string.

LPCTSTR   A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.

LPTSTR   A 32-bit pointer to a character string that is portable for Unicode and DBCS.

LPVOID   A 32-bit pointer to an unspecified type.

LRESULT   A 32-bit value returned from a window procedure or callback function.

UINT   A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.

WNDPROC   A 32-bit pointer to a window procedure.

WORD   A 16-bit unsigned integer.

WPARAM   A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32. 
Data Types
This topic lists the data types most commonly used in the Microsoft Foundation Class Library. Most of the data types are exactly the same as those in the Windows Software Development Kit (SDK), while others are unique to MFC.

Commonly used Windows SDK and MFC data types are as follows: 

BOOL   A Boolean value.


BSTR   A 32-bit character pointer.


BYTE   An 8-bit integer that is not signed.


COLORREF   A 32-bit value used as a color value.


DWORD   A 32-bit unsigned integer or the address of a segment and its associated offset.


LONG   A 32-bit signed integer.


LPARAM   A 32-bit value passed as a parameter to a window procedure or callback function.


LPCSTR   A 32-bit pointer to a constant character string.


LPSTR   A 32-bit pointer to a character string.


LPCTSTR   A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.


LPTSTR   A 32-bit pointer to a character string that is portable for Unicode and DBCS.


LPVOID   A 32-bit pointer to an unspecified type.


LRESULT   A 32-bit value returned from a window procedure or callback function.


UINT   A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.


WNDPROC   A 32-bit pointer to a window procedure.


WORD   A 16-bit unsigned integer.


WPARAM   A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32. 
Data types unique to the Microsoft Foundation Class Library include the following: 

POSITION   A value used to denote the position of an element in a collection; used by MFC collection classes.


LPCRECT   A 32-bit pointer to a constant (nonmodifiable) RECT structure. 
typedef unsigned long       DWORD;
typedef int                 BOOL;
typedef unsigned char       BYTE;
typedef unsigned short      WORD;
typedef float               FLOAT;
typedef FLOAT               *PFLOAT;
typedef BOOL near           *PBOOL;
typedef BOOL far            *LPBOOL;
typedef BYTE near           *PBYTE;
typedef BYTE far            *LPBYTE;
typedef int near            *PINT;
typedef int far             *LPINT;
typedef WORD near           *PWORD;
typedef WORD far            *LPWORD;
typedef long far            *LPLONG;
typedef DWORD near          *PDWORD;
typedef DWORD far           *LPDWORD;
typedef void far            *LPVOID;
typedef CONST void far      *LPCVOID;

typedef int                 INT;
typedef unsigned int        UINT;
typedef unsigned int        *PUINT;
typedef WCHAR *PWCHAR;
typedef WCHAR *LPWCH, *PWCH;
typedef CONST WCHAR *LPCWCH, *PCWCH;
typedef WCHAR *NWPSTR;
typedef WCHAR *LPWSTR, *PWSTR;

typedef CONST WCHAR *LPCWSTR, *PCWSTR;

//
// ANSI (Multi-byte Character) types
//
typedef CHAR *PCHAR;
typedef CHAR *LPCH, *PCH;

typedef CONST CHAR *LPCCH, *PCCH;
typedef CHAR *NPSTR;
typedef CHAR *LPSTR, *PSTR;
typedef CONST CHAR *LPCSTR, *PCSTR;

//
// Neutral ANSI/UNICODE types and macros
//
#ifdef  UNICODE                     // r_winnt

#ifndef _TCHAR_DEFINED
typedef WCHAR TCHAR, *PTCHAR;
typedef WCHAR TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPWSTR LPTCH, PTCH;
typedef LPWSTR PTSTR, LPTSTR;
typedef LPCWSTR LPCTSTR;
typedef LPWSTR LP;
#define __TEXT(quote) L##quote      // r_winnt

#else   /* UNICODE */               // r_winnt

#ifndef _TCHAR_DEFINED
typedef char TCHAR, *PTCHAR;
typedef unsigned char TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPSTR LPTCH, PTCH;
typedef LPSTR PTSTR, LPTSTR;
typedef LPCSTR LPCTSTR;
#define __TEXT(quote) quote         // r_winnt

#endif /* UNICODE */                // r_winnt
#define TEXT(quote) __TEXT(quote)   // r_winnt


typedef SHORT *PSHORT;  
typedef LONG *PLONG;    

#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE *PHANDLE;

//
// Flag (bit) fields
//

typedef BYTE   FCHAR;
typedef WORD   FSHORT;
typedef DWORD  FLONG;
我知道的都贴过了。自己写的算不算?:)
神经。
2.6 Object Pascal 类型
Object Pascal 的最大特点是,它的数据类型特别严谨,这表示传递给过程或函数的实参必须和定
义过程或函数时的形参的类型相同。不可能在P a s c a l 中看到一些著名编译器例如C 编译器所提示的可疑
的指针转换等编译警告信息。这是因为Object Pascal 编译器不允许用一种类型的指针去调用形参为另
一种类型的函数(无类型的指针除外)。
2.6.1 类型的比较
D e l p h i 的基本数据类型跟C 和Visual Basic 的相同,表2 - 5 对照列出了Object Pascal 的基本数据类型
以及C / C + +和Visual Basic 的基本数据类型。你可能想把这一页折起来,因为这张表提供了当在D e l p h i
中调用不是D e l p h i 的动态连接库( D L L )或目标文件( O B J )中的函数时用于匹配类型的最好的参考。
表2-5 Pascal 、C / C + +、Visual Basic 数据类型的对照
变量类型P a s c a l C / C + + Visual Basic
8 位有符号整数S h o r t I n t c h a r 无
8 位无符号整数B y t e B Y T E ,unsigned short B y t e
1 6 位有符号整数S m a l l I n t s h o r t S h o r t
1 6 位无符号整数Wo r d unsigned short 无
3 2 位有符号整数I n t e g e r ,L o n g i n t i n t ,l o n g Integer Long
3 2 位无符号整数C a r d i n a l ,L o n g Wo r d unsigned long 无
6 4 位有符号整数I n t 6 4 _ i n t 6 4 无
4 字节浮点数S i n g l e f l o a t S i n g l e
6 字节浮点数R e a l 4 8 无无
8 字节浮点数D o u b l e d o u b l e D o u b l e
1 0 字节浮点数E x t n d e d long double 无
6 4 位货币值c u r r e n c y 无无C u r r e n c y
8 字节日期/时间T D a t e Ti m e 无D a t e
1 6 字节v a r i a n t Va r i a n t ,O l e Va r i a n t ,VARIANT Va r i a n t

,Va r i a n t (缺省)
T Va r D a t a O l e Va r i a n t

1 字节字符C h a r c h a r 无
2 字节字符Wi d e C h a r W C H A R
固定长度字节的字符串S h o r t S t r i n g 无无
动态字符串A n s i S t r i n g A n s i S t r i n g

S t r i n g
以N u l l 结束的字符串P C h a r c h a r *无
以N u l l 结束的宽字符串P Wi d e C h a r L P C W S T R 无
动态2 字节字符串Wi d e S t r i n g Wi d e S t r i n g


1 字节布尔值B o o l e a n ,B y t e B o o l (任何1 字节数)无
2 字节布尔值Wo r d B o o l (任何2 字节数) B o o l e a n
4 字节布尔值B O O L ,L o n g B o o l B O O L 无
①模拟对应的Object Pasacl 类型的Borland C++ Builder 类。
注意如果要移植Delphi 1.0 的16 位代码,请记住,无论是Integer 还是Cardinal 类型都已经从16
位扩展到3 2 位。更准确地说,在Delphi 2 和Delphi 3 中,C a r d i n a l 被看作是3 1 位的无符号整数,
在Delphi 4 以后,Cardinal 才真正成为32 位的无符号整数。
register
auto
enum
...
有意思!
有意思!
C#的值类型:
简单类型
  整型:sbyte,byte,short,ushort,int,unit,long,ulong
  布尔型:bool
  字符型:char
  浮点型:float,double
  小数型:decimal
结构类型:struct
枚举类型:enum

C#的引用类型:
对象类型:object
类类型:class
接口:interface
代表元:
字符串类型:string
数组:

超级无聊.
绝对无聊!!!!

要不要自定义类啊.
要不要各个开发商定义的宏啊.
想知道回字有几种吗???
在intel32位处理器上,只有三种数据类型
BYTE
WORD
DWORD
其他一切都是虚的.
opengl里的
GLint,GLsizei GLfloat,GLbyte,GLshort,GLclamped,GLubyte,GLuint,GLvoid...
若把大家的发言整理一下,再加上一些相关资料,比如不同类型之间的转换等等,
将会是一份很好的参考手册。
int 整型  
 回复人:laughsun(啸傲) (2001-5-25 16:29:00)  得0分 
char *
time_t
...
...  
 回复人:seesi(不是我想骗你,是我不知道怎么才能不骗!) (2001-5-25 16:29:00)  得0分 
WORD unsigned int
DWORD unsigned long
LONG long
INT  int
COLORREF unsigned long
 
 回复人:MauveDragon(子龙) (2001-5-25 16:32:00)  得0分 
int,float,double,bool,void,char,  
 回复人:liuyj(程序人生) (2001-5-25 16:41:00)  得0分 
variant

会得分吗?  
 回复人:yukuang(天才??SB??) (2001-5-25 16:42:00)  得0分 
UNIT是什么类型?LPCSTR又是什么?  
 回复人:chief(大副) (2001-5-25 16:49:00)  得0分 
BOOL  A Boolean value.

BSTR  A 32-bit character pointer.

BYTE  An 8-bit integer that is not signed.

COLORREF  A 32-bit value used as a color value.

DWORD  A 32-bit unsigned integer or the address of a segment and its associated offset.

LONG  A 32-bit signed integer.

LPARAM  A 32-bit value passed as a parameter to a window procedure or callback function.

LPCSTR  A 32-bit pointer to a constant character string.

LPSTR  A 32-bit pointer to a character string.

LPCTSTR  A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.

LPTSTR  A 32-bit pointer to a character string that is portable for Unicode and DBCS.

LPVOID  A 32-bit pointer to an unspecified type.

LRESULT  A 32-bit value returned from a window procedure or callback function.

UINT  A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.

WNDPROC  A 32-bit pointer to a window procedure.

WORD  A 16-bit unsigned integer.

WPARAM  A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32. 
 
 回复人:chinaprogrammer(职业道德&职业水准) (2001-5-25 16:50:00)  得0分 
Data Types
This topic lists the data types most commonly used in the Microsoft Foundation Class Library. Most of the data types are exactly the same as those in the Windows Software Development Kit (SDK), while others are unique to MFC.

Commonly used Windows SDK and MFC data types are as follows: 

BOOL  A Boolean value.


BSTR  A 32-bit character pointer.


BYTE  An 8-bit integer that is not signed.


COLORREF  A 32-bit value used as a color value.


DWORD  A 32-bit unsigned integer or the address of a segment and its associated offset.


LONG  A 32-bit signed integer.


LPARAM  A 32-bit value passed as a parameter to a window procedure or callback function.


LPCSTR  A 32-bit pointer to a constant character string.


LPSTR  A 32-bit pointer to a character string.


LPCTSTR  A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.


LPTSTR  A 32-bit pointer to a character string that is portable for Unicode and DBCS.


LPVOID  A 32-bit pointer to an unspecified type.


LRESULT  A 32-bit value returned from a window procedure or callback function.


UINT  A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.


WNDPROC  A 32-bit pointer to a window procedure.


WORD  A 16-bit unsigned integer.


WPARAM  A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32. 
Data types unique to the Microsoft Foundation Class Library include the following: 

POSITION  A value used to denote the position of an element in a collection; used by MFC collection classes.


LPCRECT  A 32-bit pointer to a constant (nonmodifiable) RECT structure. 
 
 回复人:chinaprogrammer(职业道德&职业水准) (2001-5-25 16:52:00)  得0分 
typedef unsigned long      DWORD;
typedef int                BOOL;
typedef unsigned char      BYTE;
typedef unsigned short      WORD;
typedef float              FLOAT;
typedef FLOAT              *PFLOAT;
typedef BOOL near          *PBOOL;
typedef BOOL far            *LPBOOL;
typedef BYTE near          *PBYTE;
typedef BYTE far            *LPBYTE;
typedef int near            *PINT;
typedef int far            *LPINT;
typedef WORD near          *PWORD;
typedef WORD far            *LPWORD;
typedef long far            *LPLONG;
typedef DWORD near          *PDWORD;
typedef DWORD far          *LPDWORD;
typedef void far            *LPVOID;
typedef CONST void far      *LPCVOID;

typedef int                INT;
typedef unsigned int        UINT;
typedef unsigned int        *PUINT;
 
 回复人:chinaprogrammer(职业道德&职业水准) (2001-5-25 16:53:00)  得0分 
typedef WCHAR *PWCHAR;
typedef WCHAR *LPWCH, *PWCH;
typedef CONST WCHAR *LPCWCH, *PCWCH;
typedef WCHAR *NWPSTR;
typedef WCHAR *LPWSTR, *PWSTR;

typedef CONST WCHAR *LPCWSTR, *PCWSTR;

//
// ANSI (Multi-byte Character) types
//
typedef CHAR *PCHAR;
typedef CHAR *LPCH, *PCH;

typedef CONST CHAR *LPCCH, *PCCH;
typedef CHAR *NPSTR;
typedef CHAR *LPSTR, *PSTR;
typedef CONST CHAR *LPCSTR, *PCSTR;

//
// Neutral ANSI/UNICODE types and macros
//
#ifdef  UNICODE                    // r_winnt

#ifndef _TCHAR_DEFINED
typedef WCHAR TCHAR, *PTCHAR;
typedef WCHAR TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPWSTR LPTCH, PTCH;
typedef LPWSTR PTSTR, LPTSTR;
typedef LPCWSTR LPCTSTR;
typedef LPWSTR LP;
#define __TEXT(quote) L##quote      // r_winnt

#else  /* UNICODE */              // r_winnt

#ifndef _TCHAR_DEFINED
typedef char TCHAR, *PTCHAR;
typedef unsigned char TBYTE , *PTBYTE ;
#define _TCHAR_DEFINED
#endif /* !_TCHAR_DEFINED */

typedef LPSTR LPTCH, PTCH;
typedef LPSTR PTSTR, LPTSTR;
typedef LPCSTR LPCTSTR;
#define __TEXT(quote) quote        // r_winnt

#endif /* UNICODE */                // r_winnt
#define TEXT(quote) __TEXT(quote)  // r_winnt


typedef SHORT *PSHORT;  
typedef LONG *PLONG;    

#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE *PHANDLE;

//
// Flag (bit) fields
//

typedef BYTE  FCHAR;
typedef WORD  FSHORT;
typedef DWORD  FLONG;
 
 回复人:ydogg(灰毛兔) (2001-5-25 17:03:00)  得0分 
我知道的都贴过了。自己写的算不算?:)  
 回复人:lllllll(lalalala) (2001-5-25 17:03:00)  得0分 
神经。  
 回复人:rh(强硬的毛主席万岁!伟大的周总理万岁!) (2001-5-25 17:05:00)  得0分 
2.6 Object Pascal 类型
Object Pascal 的最大特点是,它的数据类型特别严谨,这表示传递给过程或函数的实参必须和定
义过程或函数时的形参的类型相同。不可能在P a s c a l 中看到一些著名编译器例如C 编译器所提示的可疑
的指针转换等编译警告信息。这是因为Object Pascal 编译器不允许用一种类型的指针去调用形参为另
一种类型的函数(无类型的指针除外)。
2.6.1 类型的比较
D e l p h i 的基本数据类型跟C 和Visual Basic 的相同,表2 - 5 对照列出了Object Pascal 的基本数据类型
以及C / C + +和Visual Basic 的基本数据类型。你可能想把这一页折起来,因为这张表提供了当在D e l p h i
中调用不是D e l p h i 的动态连接库( D L L )或目标文件( O B J )中的函数时用于匹配类型的最好的参考。
表2-5 Pascal 、C / C + +、Visual Basic 数据类型的对照
变量类型P a s c a l C / C + + Visual Basic
8 位有符号整数S h o r t I n t c h a r 无
8 位无符号整数B y t e B Y T E ,unsigned short B y t e
1 6 位有符号整数S m a l l I n t s h o r t S h o r t
1 6 位无符号整数Wo r d unsigned short 无
3 2 位有符号整数I n t e g e r ,L o n g i n t i n t ,l o n g Integer Long
3 2 位无符号整数C a r d i n a l ,L o n g Wo r d unsigned long 无
6 4 位有符号整数I n t 6 4 _ i n t 6 4 无
4 字节浮点数S i n g l e f l o a t S i n g l e
6 字节浮点数R e a l 4 8 无无
8 字节浮点数D o u b l e d o u b l e D o u b l e
1 0 字节浮点数E x t n d e d long double 无
6 4 位货币值c u r r e n c y 无无C u r r e n c y
8 字节日期/时间T D a t e Ti m e 无D a t e
1 6 字节v a r i a n t Va r i a n t ,O l e Va r i a n t ,VARIANT Va r i a n t

,Va r i a n t (缺省)
T Va r D a t a O l e Va r i a n t

1 字节字符C h a r c h a r 无
2 字节字符Wi d e C h a r W C H A R
固定长度字节的字符串S h o r t S t r i n g 无无
动态字符串A n s i S t r i n g A n s i S t r i n g

S t r i n g
以N u l l 结束的字符串P C h a r c h a r *无
以N u l l 结束的宽字符串P Wi d e C h a r L P C W S T R 无
动态2 字节字符串Wi d e S t r i n g Wi d e S t r i n g


1 字节布尔值B o o l e a n ,B y t e B o o l (任何1 字节数)无
2 字节布尔值Wo r d B o o l (任何2 字节数) B o o l e a n
4 字节布尔值B O O L ,L o n g B o o l B O O L 无
①模拟对应的Object Pasacl 类型的Borland C++ Builder 类。
注意如果要移植Delphi 1.0 的16 位代码,请记住,无论是Integer 还是Cardinal 类型都已经从16
位扩展到3 2 位。更准确地说,在Delphi 2 和Delphi 3 中,C a r d i n a l 被看作是3 1 位的无符号整数,
在Delphi 4 以后,Cardinal 才真正成为32 位的无符号整数。
 
 回复人:yangmajituipo(阿呆) (2001-5-25 17:07:00)  得0分 
register
auto
enum
...  
 回复人:wbdragon(木匠) (2001-5-25 17:07:00)  得0分 
有意思!  
 回复人:wbdragon(木匠) (2001-5-25 17:09:00)  得0分 
有意思!  
 回复人:bluestar(蓝色星星) (2001-5-25 17:16:00)  得0分 
C#的值类型:
简单类型
  整型:sbyte,byte,short,ushort,int,unit,long,ulong
  布尔型:bool
  字符型:char
  浮点型:float,double
  小数型:decimal
结构类型:struct
枚举类型:enum

C#的引用类型:
对象类型:object
类类型:class
接口:interface
代表元:
字符串类型:string
数组:  
 回复人:joke100(咱们去SLEEP吧...) (2001-5-25 17:25:00)  得0分 

超级无聊.
绝对无聊!!!!

要不要自定义类啊.
要不要各个开发商定义的宏啊.
 
 回复人:Cowboy22(西部牛仔) (2001-5-25 18:24:00)  得0分 
想知道回字有几种吗???  
 回复人:tiongkohlang(SDK) (2001-5-25 18:36:00)  得0分 
在intel32位处理器上,只有三种数据类型
BYTE
WORD
DWORD
其他一切都是虚的.
 
 回复人:dfbb(嘲风) (2001-5-25 18:38:00)  得0分 
opengl里的
GLint,GLsizei GLfloat,GLbyte,GLshort,GLclamped,GLubyte,GLuint,GLvoid...  
 回复人:freespider() (2001-5-25 19:04:00)  得0分 
若把大家的发言整理一下,再加上一些相关资料,比如不同类型之间的转换等等,
将会是一份很好的参考手册。  
无聊!!
LPCSTR  A 32-bit pointer to a constant character string.

LPSTR  A 32-bit pointer to a character string.
有什么不同吗?
constant?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘