C++常用数据类型和Windows常见数据类型

一、C++基本的内置类型

C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了七种基本的 C++ 数据类型:

类型关键字
布尔型bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型wchar_t

一些基本类型可以使用一个或多个类型修饰符进行修饰:

  • signed 有符号
  • unsigned 无符号
  • short 短
  • long 长

下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。

注意:不同系统会有所差异。

#include <iostream>

using namespace std;

int main()
{
    //打印int类型的最大值
    cout << "int类型最大值:" << INT_MAX << endl;
    //打印int类型的最小值
    cout << "int类型最小值:" << INT_MIN << endl;
    //打印int所占字节数
    cout << "int类型字节数:" << sizeof(int);
    return 0;
}
类型位数(字节)范围
char8位,1 个字节-128 到 127 或者 0 到 255
unsigned char8位,1 个字节0 到 255
signed char8位,1 个字节-128 到 127
int32位,4 个字节-2147483648 到 2147483647
unsigned int32位,4 个字节0 到 4294967295
signed int32位,4 个字节-2147483648 到 2147483647
short int16位,2 个字节-32768 到 32767
unsigned short int16位,2 个字节0 到 65,535
signed short int16位,2 个字节-32768 到 32767
long int64位,8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int64位,8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int64位,8 个字节0 to 18,446,744,073,709,551,615
float32位,4 个字节+/- 3.4e +/- 38 (~7 个数字)
double32位,8 个字节+/- 1.7e +/- 308 (~15 个数字)
long double128位,16 个字节+/- 1.7e +/- 308 (~15 个数字)
wchar_t2 或 4 个字节1 个宽字符

从上表可得知,变量的大小会根据编译器和所使用的电脑而有所不同。

二、Windows常见数据类型

typedef unsigned long       DWORD;//一个双字等于两个字
typedef int                 BOOL;
typedef unsigned char       BYTE;
typedef unsigned short      WORD;//一个字占两个字节
typedef float               FLOAT;
typedef FLOAT               *PFLOAT;//这样就可以直接用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;

注:near   (近)指针:16位段内偏移地址 ;far(远)指针:16位段地址+16位段内偏移地址。

1、常见数据类型

WORD:               16位无符号整形数据

DWORD:             32位无符号整型数据(DWORD32)

DWORD64:         64位无符号整型数据

INT:                     32位有符号整型数据类型

INT_PTR:            指向INT数据类型的指针类型

INT32:                 32位符号整型

INT64:                 64位符号整型

UINT:                   符号INT

LONG:                 32位符号整型(LONG32)

ULONG:              无符号LONG

LONGLONG:       64位符号整型(LONG64)

SHORT:               无符号短整型(16位)

LPARAM:             消息的L参数

WPARAM:           消息的W参数

HANDLE:             对象的句柄,最基本的句柄类型

HICON:                图标的句柄

HINSTANCE:       程序实例的句柄

HKEY:                  注册表键的句柄

HMODULE:         模块的句柄

HWND:                窗口的句柄

LPSTR:                字符指针,也就是字符串变量

LPCSTR:             字符串常量

LPCTSTR:           根据环境配置,如果定义了UNICODE宏,则是LPCWSTR类型,否则则为LPCSTR类型

LPCWSTR:          UNICODE字符串常量

LPDWORD:         指向DWORD类型数据的指针

CHAR:                 8比特字节

TCHAR:               如果定义了UNICODE,则为WCHAR,否则为CHAR

UCHAR:              无符号CHAR

WCHAR:             16位Unicode字符

BOOL:                 布尔型变量

BYTE:                  字节类型(8位)

CONST:               常量

FLOAT:                浮点数据类型

SIZE_T:               表示内存大小,以字节为单位,其最大值是CPU最大寻址范围

VOID:                  无类型,相当于标准C语言中的void

WINAPI:              Windows API的函数调用方式,常见于SDK头文件中对API函数的声明中,相当于_stdcall(更严格地说,这不是数据类型,而是一种函数调用约定)

2、Windows数据类型命名规律

基本数据类型包括:BYTE、CHAR、WORD、SHORT、INT等。

指针类型的命令方式一般是在其指向的数据类型前加“LP”或“P”,比如指向DWORD的指针类型为“LPDWORD”和“PDWORD”

各种句柄类型的命名方式一般都是在对象名前加“H”,比如位图(BITMAP)对应的句柄类型为“HBITMAP”。

无符号类型一般是以“U”开头,比如“INT”是符号类型,“UINT”是无符号类型

根据这些命名规律以及自己的经验看到一些没见过的数据类型也就能知道它的代表的意思

3、Windows参数简写

1、 b 布尔

2、 by BYTE

3、 c chr 或WCHAR TCHAR

4、 n short

5、 i int

6、 x、y 分别表示x 坐标,y 坐标

7、 cx、cy 分别表示x 方向长度和y 方向长度

8、 b 或f BOOL(int),f 代表“flag”

9、 w WORD(无符号short)

10、l LONG 长整数

11、dw DWORD 无符号长整数

12、fn function 函数

13、s string 字符串

14、sz 以0 字节结尾的字符串

15、h 句柄

16、p 指针

17、lpfn 指向函数的长指针

18、cb 字节数(count byte)

19、lpsz 指向以0 结尾的字符串的长指针(long pointer size zero)

20、g_ 全局变量

21、c_ 常量

22、m_ 类数据成员

23、s_ 静态变量

24、CS_ 类风格选项(Class Style)

25、CW_ 创建窗口选项(Create Window)

26、DT_ 绘制文本选项

27、IDI_ 图标ID 号 

28、IDC_光标ID 号(C:Cursor)

29、MB_ 消息框选项(Message Box)

30、SND_ 声音选项(Sound)

31、WM_ 窗口消息(Window Message)

32、WS_ 窗口风格(Window Style)

33、rc 矩形

4、Windows数据类型与标准C数据类型的关系

查看Windows数据类型的定义可以看到,所有的windows数据类型都是由C数据类型经过类型重定义得到的

DWORD实质上就是 unsigned long 数据类型,32位无符号整型。

HANDLE类型实质上是void,HANDLE定义为:

typedof    PVOID    HANDLE;

HANDLE实际上就是一个PVOID,那PVOID又是什么呢?

typeof     void      *PVOID;

PVOID就是指向void的指针。所以句柄就是指向某个东西的指针。

所有的Windows数据类型都是通过这种方式在SDK的头文件中进行定义的,它们都是来源于标准C的。

类型重定义在winnt.h中。

转自:https://www.cnblogs.com/chaoyingLi/p/11236478.html

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQLite是一种轻量级的关系型数据库管理系统,具有以下特点: 1. 跨平台性强:SQLite可以在多种操作系统平台上使用,包括Windows、Linux、MacOS等。 2. 小巧灵活:SQLite的可执行文件大小仅有几百KB,且可以直接嵌入其他应用程序中使用,不需要单独安装。 3. 支持多种数据类型:SQLite支持常用数据类型,包括数值型、字符串型、日期型等。 4. 可以使用SQL语言:SQLite可以使用SQL语言进行数据库的建立、查询、修改、删除等操作。 5. 支持事务:SQLite支持事务,可以保证数据的完整性和一致性。 SQLite支持的数据类型包括: 1. NULL:空值,表示没有任何值。 2. INTEGER:整数,可以是有符号或无符号的整数。 3. REAL:浮点数,表示带小数点的数字。 4. TEXT:文本,表示字符串。 5. BLOB:二进制数据块,用于存储二进制数据。 ### 回答2: SQLite是一种轻量级的嵌入式数据库引擎,具有以下特点: 1. 嵌入式:SQLite以库的形式嵌入到应用程序中,无需独立运行,节省资源和空间。 2. 无服务器:SQLite不需要独立的服务器进程,可以直接通过文件访问数据库,简化了部署和配置。 3. 多平台支持:SQLite可在多种操作系统和编程语言下使用,包括Windows、Linux、iOS、Android等。 4. 高效性:SQLite的性能非常高,具有快速的数据访问和查询速度,适用于对速度要求较高的应用。 5. 零配置:SQLite无需进行复杂的配置,只需创建数据库文件并定义数据结构即可进行数据存储和操作。 6. 支持事务:SQLite支持事务操作,确保数据的一致性和完整性,并提供ACID(原子性、一致性、隔离性和持久性)属性。 7. 轻量级:SQLite的核心库非常小巧,仅几百KB大小,适合嵌入到资源有限的设备或应用中。 8. 具有丰富的功能:SQLite支持复杂的SQL查询、触发器、视图、存储过程等,满足各种数据操作需求。 SQLite支持多种数据类型,包括常见的文本、整数、浮点数、日期时间等。具体的数据类型如下: 1. NULL:空值。 2. INTEGER:整数类型,共有1、2、3、4、6、8字节大小,可以存储有符号或无符号整数。 3. REAL:浮点数类型,用于存储浮点数值。 4. TEXT:文本类型,用于存储字符串和字符数据。 5. BLOB:二进制大对象类型,用于存储二进制数据,如图片、音频、视频等。 6. NUMERIC:数字类型,可以存储任意精度的数字值。 通过以上的特点和支持的数据类型,SQLite成为了一种灵活、高效、方便应用程序开发和嵌入式设备使用的数据库引擎。 ### 回答3: SQLite是一种轻量级的关系型数据库管理系统,其主要特点如下: 1. 简单易用:SQLite是一个独立的嵌入式数据库,无需单独的服务器进程,可以直接访问数据库文件。它的使用和管理都非常简单,只需要一个库文件和操作API就能够应用在各种平台上。 2. 小巧高效:SQLite的核心库非常小巧,只有几百KB,非常适合嵌入到应用程序中。同时,SQLite具有高性能的特点,能够处理大规模的数据集和复杂的查询操作。 3. 高度可靠:SQLite采用了事务机制,保证数据的完整性和一致性。同时,SQLite还具有多版本并发控制(MVCC)机制,能够支持多用户并发访问数据库。 4. 跨平台支持:SQLite可以在多个操作系统上运行,包括Windows、Linux、Unix和Mac OS等。同时,SQLite还支持多种编程语言,如C/C++、Python、Java等。 SQLite支持多种数据类型,包括: 1. NULL:空值类型,表示没有值。 2. INTEGER:整数类型,可以存储整数值。 3. REAL:浮点数类型,可以存储浮点数值。 4. TEXT:文本类型,可以存储字符串值。 5. BLOB:二进制类型,可以存储二进制数据,如图片、音频等文件。 此外,SQLite还支持日期时间类型、布尔类型和其他一些特殊类型,比如枚举类型和JSON类型等。通过这些数据类型的组合,SQLite能够存储和处理各种类型的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值