上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区 ―常量字符... 阅读全文
posted @ 2013-09-05 15:36 宁静世界 阅读(249) 评论(0) 推荐(0) 编辑
摘要: More Info:http://wenku.baidu.com/view/beb6a38671fe910ef12df8e7.htmlPV操作:一、线程是进程的一个组成部分,一个进程可以有多个线程,而且至少有一个可执行线程。进程的多个线程都在进程的地址空间内活动。 资源是分给进程的,而不是分给线程的,线程需要资源时,系统从进程的资源配额中扣除并分配给它。处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。线程在执行过程中,需要同步。二、在计算机操作系统中,PV操作是进程管理中的难点。 首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程) 阅读全文
posted @ 2013-09-05 11:01 宁静世界 阅读(370) 评论(0) 推荐(0) 编辑
摘要: //break是结束整个循环体,continue是结束单次循环比方说:while(x++ < 10){ if(x == 3) { break; } printf("%d\r\n", x);}结果是输出 1 2 就退出了整个while循环但是如果使用continuewhile(x++ < 10){ if(x == 3) { continue; } printf("%d\r\n", x);}结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环 阅读全文
posted @ 2013-09-04 17:23 宁静世界 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 转自:http://hi.baidu.com/luosiyong/item/88a97b0e3bd0ee8802ce1b0bhttp://hi.baidu.com/luosiyong/item/88a97b0e3bd0ee8802ce1b0b【__declspec(dllexport) 方式】首先对C和C++编译(extern "C")与调用约定(__cdecl、__stdcall、__fastcall)进行组合测试:【C++编译】__declspec(dllexport) int add(int, int);__declspec(dllexport) int __cdec 阅读全文
posted @ 2013-09-04 13:55 宁静世界 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 原文出处http://blog.csdn.net/gordonyui/article/details/6799404最近需要讀取及轉換USB devices的模式,會用到SetupDi****相關的API,這些API都是放在setupapi.h裡,找了很久,在網路上也有人提到,但都是片面的,也都分散在不同的地方,現在我就將其整合放在我自己的Blog裡,這樣下次要用也不會忘記。這一組API是Microsoft PlatformSDK提供的,路徑也在VS裡。首先在程式裡要#include , 在Visual Studio C++裡要將setupapi.h與setupapi.lib的路徑設定到pro 阅读全文
posted @ 2013-09-03 17:16 宁静世界 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: VS2008主界面 -- 工具 -- 项目和解决方案 -- VC++目录 -- 包含目录,选择添加头文件所在文件,重新编译,运行,OK。如图: 阅读全文
posted @ 2013-08-28 09:26 宁静世界 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 不要用&的情况:1.声明数组型变量2.字符型变量并为其重新malloc空间地址后 eg. unsigned char* szContainerName=NULL; ... szContainerName=(unsigned char*)malloc(pulSize);//分配地址空间; ... UkeyEnumContainer(phDev,szContainerName,&pulSize);//枚举容器-->szContainerName不为空时;1 //UkeyEnumContainer函数定义声明如下:2 3 typedef ULONG (DEV... 阅读全文
posted @ 2013-08-27 09:28 宁静世界 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 编辑:CTRL + M, O:折叠当前源代码文件中的所有大纲CTRL + M, L:将当前源代码的大纲在折叠与展开间切换CTRL + M, M:将当前选中的源代码在折叠与展开间切换CTRL + M, P:将当前源代码文档中的所有大纲信息清除CTRL + K, C or CTRL + E, C:注释掉所有选中的源代码部分CTRL + K, U or CTRL + E, U:取消掉所有选中的源代码部分的注释CTRL + K, D or CTRL + E, D:按源码缩进和标准格式来格式化当前文档CTRL + K, F or CTRL + E, F:按源码缩进和标准格式来格式化选中文档CTRL + 阅读全文
posted @ 2013-08-23 15:14 宁静世界 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 转自:http://wenku.baidu.com/view/3e1957270066f5335a8121cc.html http://see.xidian.edu.cn/cpp/biancheng/view/50.html一、引用作为函数参数作为函数参数时引用有两种原因:在函数内部会对此参数进行修改提高函数调用和运行效率关于第一点,都知道C++里提到函数就会提到形参和实参。如果函数的参数实质就是形参,不过这个形参的作用域只是在函数体内部,也就是说实参和形参是两个不同的东西,要想形参代替实参,肯定有一个值的传递。函数调用时,值的传递机制是通过“形参=实参”来对形参赋值达到传值目的,产生了一.. 阅读全文
posted @ 2013-08-22 09:45 宁静世界 阅读(5133) 评论(0) 推荐(0) 编辑
摘要: 百度:http://dwz.cn/aErDj工作机制malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。于是,malloc函数请求延时,并 阅读全文
posted @ 2013-08-22 09:07 宁静世界 阅读(1074) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页