C/C++学习
face_look
这个作者很懒,什么都没留下…
展开
-
enum枚举类型
在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任转载 2012-07-09 15:11:55 · 534 阅读 · 0 评论 -
malloc函数
原型:extern void *malloc(unsigned int num_bytes);头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。 功能:分配长度为num_bytes字节的内存块 返回值:如原创 2012-07-26 15:44:06 · 343 阅读 · 0 评论 -
SOCKADDR_IN
struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ }; sa_family是地址家族,一般都是“AF_xxx”的形式。通常大多用的是都是AF_IN原创 2012-07-25 16:43:07 · 374 阅读 · 0 评论 -
函数指针
在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针原创 2012-07-26 10:14:22 · 326 阅读 · 0 评论 -
函数名的意义
从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址。原创 2012-07-27 16:28:19 · 1389 阅读 · 0 评论 -
CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该线程睡眠,这样该线程占用的CPU时间就比较少。产生事件对象的函数如下: HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttribut转载 2012-07-27 19:57:41 · 367 阅读 · 0 评论 -
LRESULT
LRESULT是一个数据类型,MSDN: 32-bit value returned from a window procedure or callback function指的是从窗口程序或者回调函数返回的32位值在winnt.h中typedef long LONG;在windef.h中typedef LONG LRESULT;所以LRESULT就是lon转载 2012-07-30 16:45:00 · 727 阅读 · 0 评论 -
POINT Structure
点 结构定义点的 x 坐标和 y 坐标。typedef struct tagPOINT { LONG x; LONG y;} POINT;参数: x 指定点的 x 坐标。y 指定点的 y 坐标示例://Alternate ways to initialize a POINT structure:POINT ptA;p转载 2012-07-30 17:48:12 · 434 阅读 · 0 评论 -
static
面向对象的static关键字 (类中的static关键字) 1、静态数据成员 在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。先举一个静态数据成员的例子。 //Example 5 #include class Myclass { public: Myclass(转载 2012-07-30 17:07:40 · 433 阅读 · 0 评论 -
new
New 关键字引入 New 子句,该子句创建一个新的对象实例。New 子句必须指定一个可以用来创建实例的已定义类。可以在声明语句或赋值语句中使用 New。执行该语句时,它将调用指定类的构造函数,传递您提供的所有参数:Dim Obj As ObjectObj = New SomeClass("String required by constructor")' ...Dim MyLabel转载 2012-07-31 11:20:37 · 328 阅读 · 0 评论 -
BITMAP的定义
typedef struct tagBITMAP{ LONG bmType; //位图类型,必须为0 LONG bmWidth; //位图宽度 LONG bmHeight; //位图高度 LONG bmWidthBytes; //每一行像素所在的byte数 WORD bmPlanes; //颜色平面数 WORD bmBitsP原创 2012-07-31 20:14:14 · 740 阅读 · 0 评论 -
CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \ (PCHAR)(address) - \ (ULONG_PTR)(&((t原创 2012-07-26 11:01:10 · 339 阅读 · 0 评论 -
delete this的用法
In order to understand "delete this" : First Step------dive into "delete p"delete p 执行了哪两个步骤?delete p 是一个两步的过程:调用析构函数,然后释放内存。delete p产生的代码看上去是这样的(假设是Fred*类型的):// 原始码:delete p;if (p != NULL)转载 2012-07-24 16:34:47 · 526 阅读 · 0 评论 -
DLL
DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关转载 2012-07-09 15:12:57 · 606 阅读 · 0 评论 -
memset
void *memset(void *s, int ch, size_t n); 函数解释:将s中前n个字节替换为ch并返回s;memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。原创 2012-07-09 15:15:23 · 273 阅读 · 0 评论 -
union
union:C/C++语言关键字。1. 共用体声明和共用体变量定义 共用体(参考“共用体”百科词条)是一种特殊形式的变量,使用关键字union来定义 共用体(有些人也叫"联合")声明和共用体变量定义与结构体十分相似。其形式为: union 共用体名{ 数据类型 成员名; 数据类型 成员名; ... } 变量名;转载 2012-07-09 15:11:37 · 334 阅读 · 0 评论 -
extern "C" __declspec(dllexport)
一、__declspec(dllexport): 将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。 通常它和extern "C" 合用,形式如下:extern "C"{__declspec(dllexport) RETURN_TYPE FUNCTION(){}} 这是由于在转载 2012-07-09 15:12:39 · 6462 阅读 · 2 评论 -
LPVOID
LPVOID是一个没有类型的指针,也就是说你可以将任意类型的指针赋值给LPVOID类型的变量(一般作为参数传递),然后在使用的时候再转换回来。 可以将其理解为long型的指针,指向void型。示例程序:class CMyClass { void Start(); static UINT StartThread(LPVOID lParam);转载 2012-07-09 15:13:17 · 381 阅读 · 0 评论 -
__stdcall
被这些修饰关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall 的前面部分由ecx,edx传), 函数调用在返回前要清理堆栈,但由调用者还是被调用者清理不一定。__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事: 1.参数传递顺序 2.调用堆栈由谁(调用函数或被调用函数)清理 常见的函数调用约定:std转载 2012-07-09 15:14:56 · 316 阅读 · 0 评论 -
#pragma data_seg
#pragma data_seg介绍 用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为: #pragma data_seg ("shareddata") HWND sharedwnd=NULL;//共享数据 #pragma data_seg() -----------------------转载 2012-07-23 16:45:14 · 235 阅读 · 0 评论 -
typedef struct与struct的区别
1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 2.转载 2012-07-09 15:15:09 · 478 阅读 · 1 评论 -
引用和引用参数
C++中有两种函数参数传递方式:按值传递和按引用传递。当按值传递时,会产生一份实参值的副本,然后将副本传递给被调用函数,对副本的修改不影响调用者中原始变量的值。 利用按引用传递,调用者使得被调用函数可以直接访问调用者的数据,还可以修改这些数据。 未完待续...原创 2012-07-25 10:10:39 · 473 阅读 · 0 评论 -
Critical_Section 意义及用法
结构体:typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;struct RTL_CRITICAL_SECTION{PRTL_CRITICAL_SECTION_DEBUG DebugInfo;LONG LockCount;LONG RecursionCount;HANDLE OwningThread;HANDLE Lock原创 2012-07-25 11:47:09 · 875 阅读 · 0 评论 -
CURSORINFO
CURSORINFO Structure该结构包含了全局光标信息。语法typedef struct {DWORD cbSize;DWORD flags;HCURSOR hCursor;POINT ptScreenPos;} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;参数:cbSize DWORD指定结构自身的大转载 2012-07-31 19:43:46 · 3849 阅读 · 0 评论