Windows数据类型探幽——千回百转你是谁?----转载
Windows数据类型探幽——千回百转你是谁?
原创 danis 发布于2007-01-29 20:40:00 阅读数 749 收藏
展开
Windows Data Types
Windows数据类型
由微软Windows操作系统所支持的各种数据类型是用来定义函数的返回值、函数和消息的参数以及结构体成员(因为Win32程序是用C语言来编写,所以没有“类”这个概念)的。这些数据类型定义了上述元素的尺码(在内存中的,也就是占用内存的字节数)和含义。笔者以前一直不太注意这些东西,结果在程序设计时可谓步履维艰。不同类型的常/变量,在程序用扮演的角色相去甚远,了解这些类型,对剖析程序的工作原理是非常有用的。今天又是周末,我把这些类型列出来,然后把它们的“原形”也找出来——是不是很像“照妖镜”呀。
下面这张表里包括这些类型:字符类型(character),整数类型(integer),逻辑值类型(布尔型,海峡那边的兄弟们喜欢叫“布林型”,Boolean),指针类型(pointer),句柄型(handle)。其中,字符类型、整数类型和逻辑值(布尔)类型是C语言编译器通用的,也就是与标准C语言一样。大多数指针类型都是以P(Pointer)或者LP(Long Pointer)前缀开头。“句柄”是指被装载进内存的一个资源(本质而言就是指一定范围内的唯一编号)。
下面这张表是我结合MSDN里的资料制作的,因为自己也是初学,做的还比较粗糙,请大家多多指正:)
Windows数据类型 本质类型 字节数 定义过程(来历) 含义
ATOM unsigned short 2 unsigned short→WORD→ATOM 在Atom表中,一键(16位整数)一值(一个String)为一个Atom。
BOOL int * int→BOOL 逻辑变量,布尔值 (取值为 TRUE 或 FALSE)
BOOLEAN unsigned char 1 unsigned char→BYTE→BOOLEAN 逻辑变量,布尔值 (取值为 TRUE 或 FALSE)
BYTE unsigned char 1 unsigned char→BYTE 字节型,8位。
CALLBACK __stdcall 调用 __stdcall→CALLBACK 回调函数的调用约定
CHAR char 1 char→CHAR 8位Windows字符(ANSI)
COLORREF unsigned long 4 unsigned long→DWORD→COLORREF 红,绿,蓝(RGB)值
CONST const 关键字 const→CONST 常量
CRITICAL_SECTION RTL_CRITICAL_SECTION结构体 ? RTL_CRITICAL_SECTION(结构)→CRITICAL_SECTION Critical-section对象
DWORD unsigned long 4 unsigned long→DWORD 32位无符号整数
DWORD_PTR unsigned long 4 unsigned long→ULONG_PTR→DWORD_PTR(另有其它路径) 略……(用处挺大,不过太长了)
DWORD32 unsigned int * unsigned int→DWORD32 32位无符号整数
DWORD64 unsigned __int64 8 unsigned __int64→DWORD64 64位无符号整数
FLOAT float 4 float→FLOAT 浮点数变量
HACCEL HACCEL__结构体指针 由DECLARE_HANDLE(name)宏定义的指向HACCEL__结构体的指针 快捷键列表的句柄
HANDLE void *(一个地址) void *→HANDLE 对象的句柄
HBITMAP HBITMAP__结构体指针 由DECLARE_HANDLE(name)宏定义的指向HBITMAP__结构体的指针 位图的句柄
HBRUSH HBRUSH__结构体指针 由DECLARE_HANDLE(name)宏定义…… 画刷的句柄
HCONV HCONV__结构体指针 由DECLARE_HANDLE(name)宏定义…… 动态数据交换(DDE)会话的句柄
HCONVLIST HCONVLIST__结构体指针 由DECLARE_HANDLE(name)宏定义…… 动态数据交换(DDE)会话列表的句柄
HCURSOR HICON__结构体指针 HICON__ *→HICON→HCURSOR 光标的句柄
HDC HDC__结构体指针 由DECLARE_HANDLE(name)宏定义…… 设备上下文(DC)的句柄
HDDEDATA HDDEDATA__结构体指针 由DECLARE_HANDLE(name)宏定义…… 动态数据交换数据的句柄
HDESK HDESK__结构体指针 由DECLARE_HANDLE(name)宏定义…… 桌面(Desktop)的句柄
HDROP HDROP__结构体指针 由DECLARE_HANDLE(name)宏定义…… Handle to an internal drop structure.
HDWP void *(一个地址) void *→HANDLE→HDWP Handle to a deferred window position structure.
HENHMETAFILE HENHMETAFILE__结构体指针 由DECLARE_HANDLE(name)宏定义…… 增强图元文件的句柄
HFILE int * int→HFILE 由OpenFile(而不是CreateFile)打开的文件的句柄.
HFONT HFONT__结构体指针 由DECLARE_HANDLE(name)宏定义…… 字体的句柄
HGDIOBJ void near * void NEAR *→HGDIOBJ GDI对象的句柄
HGLOBAL void *(一个地址) void *→HANDLE→HGLOBAL 全局内存块的句柄
HHOOK HHOOK__结构体指针 由DECLARE_HANDLE(name)宏定义…… 句子(hook)的句柄
HICON HICON__结构体指针 由DECLARE_HANDLE(name)宏定义…… 图标的句柄
HIMAGELIST _IMAGELIST结构体指针 _IMAGELIST *→HIMAGELIST 图片列表的句柄
HIMC HIMC__结构体指针 由DECLARE_HANDLE(name)宏定义…… 输入上下文的句柄
HINSTANCE HINSTANCE__结构体指针 由DECLARE_HANDLE(name)宏定义…… 实例的句柄
HKEY HKEY__结构体指针 由DECLARE_HANDLE(name)宏定义……(另有一条路径,一样) 注册表键的句柄
HKL HKL__结构体指针 由DECLARE_HANDLE(name)宏定义…… 输入点标识符
HLOCAL void *(一个地址) void *→HANDLE→HLOCAL 本地内存块的句柄
HMENU HMENU__结构体指针 由DECLARE_HANDLE(name)宏定义…… 菜单的句柄
HMETAFILE HMETAFILE__结构体指针 由DECLARE_HANDLE(name)宏定义…… 图元文件的句柄
HMODULE HINSTANCE__结构体指针 HINSTANCE__*→HINSTANCE→HMODULE 模块的句柄。值由模块的位置来决定。
HMONITOR HMONITOR__结构体指针 由DECLARE_HANDLE(name)宏定义…… 显示器的句柄
HPALETTE HPALETTE__结构体指针 由DECLARE_HANDLE(name)宏定义…… 调色板的句柄
HPEN HPEN__结构体指针 由DECLARE_HANDLE(name)宏定义…… 画(线)笔的句柄
HRGN HRGN__结构体指针 由DECLARE_HANDLE(name)宏定义…… 区域的句柄
HRSRC HRSRC__结构体指针 由DECLARE_HANDLE(name)宏定义…… 资源的句柄
HSZ HSZ__结构体指针 由DECLARE_HANDLE(name)宏定义…… 动态数据交换(DDE)字符串的句柄
HWINSTA HWINSTA__结构体指针 由DECLARE_HANDLE(name)宏定义…… 窗口状态的句柄
HWND HWND__结构体指针 由DECLARE_HANDLE(name)宏定义…… 窗口的句柄
接下表
————————————————
版权声明:本文为CSDN博主「danis」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fsc2988877/article/details/1497402
INT | int | * | int→INT | 32位有符号整数 |
INT_PTR | int(_W64 int即__w64 int) | * | _W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的兼容性而设置的关键字 | 用于指针运算 |
INT32 | signed int | * | signed int→INT32 | 32位有符号整数 |
INT64 | signed __int64 | signed __int64→INT64 | 64位有符号整数 | |
LANGID | unsigned short | unsigned short→WORD→LANGID | 语言标识符 | |
LCID | unsigned long | unsigned long→DWORD→LCID | Locale identifier. | |
LCTYPE | unsigned long | unsigned long→DWORD→LCTYPE | Locale information type. | |
LONG | long | long→LONG | 32位有符号整数 | |
LONG_PTR | long | _W64 long→LONG_PTR | 用于指针运算 | |
LONG32 | signed int | * | signed int→LONG32 | 32位有符号整数 |
LONG64 | __int64 | __int64→LONG64 | 64位有符号整数 | |
LONGLONG | __int64 | __int64→LONGLONG | 64位有符号整数 | |
LPARAM | long | _W64 long→LONG_PTR→LPARAM | 消息的参数 | |
LPBOOL | int * | int→BOOL, BOOL far *→LPBOOL | BOOL类型的指针 | |
LPBYTE | unsigned char * | unsigned char→BYTE,BYTE far *→LPBYTE | BYTE类型的指针 | |
LPCOLORREF | unsigned long * | unsigned long→WORD,DWORD *→LPCOLORREF | 颜色值的指针 | |
LPCRITICAL_SECTION | RTL_CRITICAL_SECTION结构体指针 | RTL_CRITICAL_SECTION *PRTL_CRITICAL_SECTION→,PRTL_CRITICAL_SECTION→LPCRITICAL_SECTION | CRITICAL_SECTION的指针 | |
LPCSTR | 静态char * | char→CHAR,CONST CHAR *→LPCSTR | 静态8位Windows字符(ANSI)无终结字符串指针 | |
LPCTSTR | 静态wchar_t * | wchar_t→WCHAR,CONST WCHAR *→LPCWSTR,LPCWSTR→LPCTSTR | 如果UNICODE已定义则为LPCWSTR,否则为LPCTSTR | |
LPCVOID | 静态void * | CONST void far *→LPCVOID | 任何类型的静态指针 | |
LPCWSTR | 静态wchar_t * | wchar_t→WCHAR,CONST WCHAR *→LPCWSTR | 静态16位Windows字符(Unicode)无终结字符串指针 | |
LPDWORD | unsigned long * | unsigned long→DWORD,DWORD far *→LPDWORD | DWORD的指针 | |
LPHANDLE | 指向句柄的指针 | void *→HANDLE,HANDLE FAR *→LPHANDLE | HANDLE的指针 | |
LPINT | int * | int far *→LPINT | INT的指针 | |
LPLONG | long * | long far *→LPLONG | LONG的指针 | |
LPSTR | char * | char→CHAR,CHAR *→LPSTR | 8位Windows字符(ANSI)无终结字符串指针 | |
LPTSTR | wchar_t * | wchar_t WCHAR,WCHAR *→LPWSTR,LPWSTR→LPTSTR | An LPWSTR if UNICODE is defined, an LPSTR otherwise. | |
LPVOID | void * | void far *→LPVOID | 任何类型的指针 | |
LPWORD | unsigned short * | unsigned short→WORD,WORD far *→LPWORD | WORD的指针 | |
LPWSTR | wchar_t * | wchar_t→WCHAR,WCHAR *→LPWSTR | 16位Windows字符(ANSI)无终结字符串指针 | |
LRESULT | long | _W64 long→LONG_PTR→LRESULT | 有符号的消息处理结果 | |
LUID | LUID结构 | 局部唯一标识符 | ||
PBOOL | int * | int→BOOL,BOOL near *→PBOOL | BOOL的指针 | |
PBOOLEAN | unsigned char * | unsigned char→BYTE→BOOLEAN,BOOLEAN *→PBOOLEAN | BOOL的指针 | |
PBYTE | unsigned char * | unsigned char→BYTE,BYTE near *→PBYTE | BYTE的指针 | |
PCHAR | char * | char→CHAR,CHAR *→PCHAR | CHAR的指针 | |
PCRITICAL_SECTION | RTL_CRITICAL_SECTION结构体指针 | RTL_CRITICAL_SECTION *→PRTL_CRITICAL_SECTION,PRTL_CRITICAL_SECTION→PCRITICAL_SECTION | CRITICAL_SECTION的指针 | |
PCSTR | 静态char * | char→CHAR,CONST CHAR *→PCSTR | 静态8位Windows字符(ANSI)无终结字符串指针 | |
PCTSTR | 静态wchar_t * | wchar_t→WCHAR,CONST WCHAR *→LPCWSTR,LPCWSTR→PCTSTR | 如果UNICODE已定义则为PCWSTR,否则为PCSTR | |
PCWCH | 静态wchar_t * | wchar_t→WCHAR,CONST WCHAR *→PCWCH | WCHAR的静态指针 | |
PCWSTR | 静态wchar_t * | wchar_t→WCHAR,CONST WCHAR *→PCWSTR | 静态16位Windows字符(Unicode)无终结字符串指针 | |
PDWORD | unsigned long * | unsigned long→DWORD,DWORD near *→PDWORD | DWORD的指针 | |
PFLOAT | float * | float→FLOAT,FLOAT *→PFLOAT | FLOAT的指针 | |
PHANDLE | 指向句柄的指针 | void *→HANDLE,HANDLE *→PHANDLE | HANDLE的指针 | |
PHKEY | 指向HKEY的指针 | HKEY__ *→HKEY *→PHKEY | HKEY的指针 | |
PINT | int * | int near *→PINT | INT的指针 | |
PLCID | unsigned long * | unsigned long→DWORD,DWORD near *→PDWORD→PLCID | LCID的指针 | |
PLONG | long * | long→LONG,LONG *→PLONG | LONG的指针 | |
PLUID | LUID结构体指针 | LUID *→PLUID | LUID的指针 |
接下表
POINTER_32 | void * | void *→POINTER_32 | 32位指针(详解略) | |
POINTER_64 | void * | void *→POINTER_64 | 64位指针(详解略) | |
PSHORT | short * | short→SHORT,SHORT *→PSHORT | SHORT的指针 | |
PSTR | char * | char→CHAR,CHAR *→PSTR | 8位Windows字符(ANSI)无终结字符串指针 | |
PTBYTE | wchar_t * | wchar_t→WCHAR,WCHAR *→PTBYTE | TBYTE的指针 | |
PTCHAR | wchar_t * | wchar_t→WCHAR,WCHAR *→PTCHAR | TCHAR的指针 | |
PTSTR | wchar_t * | wchar_t→WCHAR,WCHAR *→LPWSTR→PTSTR | PWSTR if UNICODE is defined, a PSTR otherwise. | |
PTBYTE | wchar_t * | wchar_t→WCHAR,WCHAR *→PTBYTE | TBYTE的指针 | |
PTCHAR | wchar_t * | wchar_t→WCHAR,WCHAR *→PTCHAR | TCHAR的指针 | |
PTSTR | wchar_t * | wchar_t→WCHAR,WCHAR *→LPWSTR→PTSTR | A PWSTR if UNICODE is defined, a PSTR otherwise. | |
PUCHAR | unsigned char * | unsigned char→UCHAR,UCHAR *→PUCHAR | UCHAR的指针 | |
PUINT | unsigned int * | unsigned int *→PUINT(呵呵,为什么不用UINT*来定义呢?) | UINT的指针 | |
PULONG | unsigned long * | unsigned long→ULONG,ULONG *→PULONG | ULONG的指针 | |
PUSHORT | unsigned short * | unsigned short→USHORT,USHORT *→PUSHORT | USHORT的指针 | |
PVOID | void * | void *→PVOID | 任何类型的指针 | |
PWCHAR | wchar_t * | wchar_t→WCHAR,WCHAR *→PWCHAR | WCHAR的指针 | |
PWORD | unsigned short * | unsigned short→WORD,WORD near *→PWORD | WORD的指针 | |
PWSTR | wchar_t * | wchar_t→WCHAR,WCHAR *→PWSTR | 16位Windows字符(Unicode)无终结字符串指针 | |
REGSAM | unsigned long | unsigned long→DWORD→ACCESS_MASK→REGSAM | 注册表值的安全访问掩码 | |
SC_HANDLE | SC_HANDLE__结构体指针 | 由DECLARE_HANDLE(name)宏定义…… | Handle to a service control manager database. | |
SC_LOCK | void * | void far *→LPVOID→SC_LOCK | Handle to a service control manager database lock. | |
SERVICE_STATUS_HANDLE | SERVICE_STATUS_HANDLE__结构体指针 | 由DECLARE_HANDLE(name)宏定义…… | Handle to a service status value. | |
SHORT | short | 2 | short→SHORT | 短整数类型(16位) |
SIZE_T | unsigned long | 4 | unsigned long→ULONG_PTR→SIZE_T | 指针可指向的最大字节数 |
SSIZE_T | long | _W64 long→LONG_PTR→SSIZE_T | 有符号SIZE_T. | |
TBYTE | wchar_t | 2 | wchar_t→WCHAR,WCHAR→TBYTE | 如果UNICODE已定义则为WCHAR,否则为CHAR |
TCHAR | wchar_t | 2 | wchar_t→WCHAR,WCHAR→TCHAR | 如果UNICODE已定义则为WCHAR,否则为CHAR |
UCHAR | unsigned char | 1 | unsigned char→UCHAR | 无符号CHAR |
UINT | unsigned int | * | unsigned int→UINT | 无符号INT |
UINT_PTR | unsigned int | * | unsigned int→UINT_PTR | 无符号INT_PTR. |
UINT32 | unsigned int | 2 | unsigned int→UINT32 | 无符号INT32. |
UINT64 | unsigned __int64 | 4 | unsigned __int64→UINT64 | 无符号INT64. |
ULONG | unsigned long | 4 | unsigned long→ULONG | 无符号LONG. |
ULONG_PTR | unsigned long | 4 | unsigned long→ULONG_PTR | 无符号LONG_PTR. |
ULONG32 | unsigned int | 2 | unsigned int→ULONG32 | 无符号LONG32 |
ULONG64 | unsigned __int64 | 4 | unsigned __int64→ULONG64 | 无符号LONG64 |
ULONGLONG | unsigned __int64 | 4 | unsigned __int64→ULONGLONG | 64位无符号整数 |
UNSIGNED | 没查到,大家帮忙吧 | 无符号属性 | ||
USHORT | unsigned short | unsigned short→USHORT | 无符号SHORT类型 | |
VOID | void | void→VOID | 任何类型 | |
WCHAR | wchar_t | 2 | wchar_t→WCHAR | 16位Unicode字符 |
WINAPI | __stdcall | 调用 | __stdcall→WINAPI | 系统函数(API函数)调用约定 |
WORD | unsigned short | 2 | unsigned short→WORD | 16位无符号整数 |
WPARAM | unsigned int | * | unsigned int→UINT_PTR→WPARAM | 消息的参数 |
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
在列表中,是按前半部分的宏定义而写的,请大家注意。
Windows数据类型探幽——千回百转你是谁?(4)
余二五 2017-11-15 19:09:00 浏览538
数据类型名称 | 字节数 | 别名 | 取值范围 |
int | * | signed,signed int | 由操作系统决定,即与操作系统的"字长"有关 |
unsigned int | * | unsigned | 由操作系统决定,即与操作系统的"字长"有关 |
__int8 | 1 | char,signed char | –128 到 127 |
__int16 | 2 | short,short int,signed short int | –32,768 到 32,767 |
__int32 | 4 | signed,signed int | –2,147,483,648 到 2,147,483,647 |
__int64 | 8 | 无 | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
bool | 1 | 无 | false 或 true |
char | 1 | signed char | –128 到 127 |
unsigned char | 1 | 无 | 0 到 255 |
short | 2 | short int,signed short int | –32,768 到 32,767 |
unsigned short | 2 | unsigned short int | 0 到 65,535 |
long | 4 | long int,signed long int | –2,147,483,648 到 2,147,483,647 |
long long | 8 | none (but equivalent to __int64) | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long | 4 | unsigned long int | 0 到 4,294,967,295 |
enum | * | 无 | 由操作系统决定,即与操作系统的"字长"有关 |
float | 4 | 无 | 3.4E +/- 38 (7 digits) |
double | 8 | 无 | 1.7E +/- 308 (15 digits) |
long double | 8 | 无 | 1.7E +/- 308 (15 digits) |
wchar_t | 2 | __wchar_t | 0 到 65,535 |
很开心。不过我知道,其中肯定有不完善甚至是错误的地方,请大家多多批评指正,在此先谢过大家。
Windows数据类型探幽——千回百转你是谁?----转载的更多相关文章
- Windows数据类型
WORD:16位无符号整形数据 DWORD:32字节无符号整型数据(DWORD32) DWORD64:64字节无符号整型数据 INT:32位有符号整型数据类型 INT_PTR:指向INT数据类型的指针 ...
- 1-4-2 Windows数据类型与重要数据结构
主要内容:介绍Windows数据类型与重要数据结构 1.数据类型 在Windows系统中定义了Windows应用程序中包含种类繁多的数据类型, 部分如下: WORD 16位无符号整数 typedef ...
- 学习:Windows数据类型
WINDOWS API中出现的常见的数据类型有以下几种: 1.DWORD:DWORD用于表示无符号整型的数据类型,实际名为double word,32位 2.HANDLE:HANDLE为32位的数据类 ...
- Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)
Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...
- windows服务与自启动程序的区别(转载)
转载:http://blog.csdn.net/anddy926/article/details/8464142 在客户端服务器项目实践中,作为服务端必须保持程序的24小时不间断运行,需要做一个监控, ...
- Windows中的时间(SYSTEMTIME和FILETIME) (转载)
转载:http://blog.csdn.net/bokee/article/details/5330791 两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC ...
- 在 Windows Server 上搭建 *** 服务端(转载加亲测)
转载自:https://diveng.io/build-shadowsocks-server-on-windows-server.html 下面的教程建议大家使用第一种方法安装,说是比较简单.我则使用 ...
- 在Windows中实现Java调用DLL(转载)
本文提供调用本地 C 代码的 Java 代码示例,包括传递和返回某些常用的数据类型.本地方法包含在特定于平台的可执行文件中.就本文中的示例而言,本地方法包含在 Windows 32 位动态链接库 (D ...
- Windows注册表内容详解(转载)
(关于windows注册表的整理,来源网络) 前提 一.什么是注册表 注册表是windows操作系统.硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是 ...
随机推荐
- JS中的 '+' 号
当用作单目操作符的时候,+操作符不会对Number类型产生影响.但如果应用在字符串类型上,会将其转换为数字: var a = 25;a =+ a; //对a值没有影响console.log(a); / ...
- 计算机二级-C语言-程序填空题-190110记录-文件写入与文件读出显示
//给定程序功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1(独立一行)作为字符串输入结束的标志,然后将文件的内容读到显示在屏幕上.文件的读写分别由自定义 ...
- Fluent_Python_Part2数据结构,02-array-seq,序列类型
1. 序列数据 例如字符串.列表.字节序列.元组.XML元素.数据库查询结果等,在Python中用统一的风格去处理.例如,迭代.切片.排序.拼接等. 2. 容器序列与扁平序列 容器序列:容器对象包含任 ...
- centos 6.x 启动过程简介(来自老男孩)
- web渗透(转)
某天比较无聊,听一个朋友推荐httpscan这款工具,于是就下载下来试试. 首先对某学校网段开始进行测试. 1 python httpscan.py **.**.**.0/24 测试时发现有个比较 ...
- java.lang.NoClassDefFoundError异常处理
1.异常信息: Caused by: java.lang.NoClassDefFoundError: com/pingan/cfss/monitor/user/controller/UserInfoC ...
- 使用 vant 的 v-lazy 实现图片 vue 在移动端的懒加载
官方文档:https://youzan.github.io/vant/#/zh-CN/lazyload 引入 Lazyload 是 Vue 指令,使用前需要对指令进行注册 import Vue fro ...
- 新建文件的UID和GID
默认情况下:新建文件的用户ID为操作当前文件进程的有效用户ID(参考以前文章),新建文件的组ID为操作当前文件的进程的有效组ID 特殊情况:当当前新建文件的目录的SET-GID位被设置时,那么新建文件 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 线性代数
import numpy.matlib import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[11,12],[13,14]]) p ...
- Postgresql查询表和表结构
查询表名 SELECT tablename FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' O ...