C/C++的全局变量初始化与不初始化的区别作者:佚名出处:IT专家网2009-09-11 07:00字号:T|T-->本文介绍C/C++的全局变量初始化与不初始化的区别。 在C语言里,全局变量如果不初始化的话,默认为0,也就是说在全局空间里: int x =0; 跟 int x; 的效果看起来是一样的。但其实这里面的差别很大,强烈建议大家所有的全局变量都要初始化,他们的主要差别如下: 编译器在编译的时候针对这两种情况会产生两种符号放在目标文件的符号表中,对于初始化的,叫强符号,未初始化的,叫弱符号。 连接器在连接目标文件的时候,如果遇到两个重名符号,会有以下处理规则: 1、如果有多个.. Read More
posted @ 2012-08-21 09:55 玄色青春 Views(6179) Comments(0) Diggs(0)
程序在的内存中的分配(常量,局部变量,全局变量,程序代码)一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都 Read More
posted @ 2012-08-19 20:26 玄色青春 Views(1507) Comments(0) Diggs(0)
众所周知,一个网卡对应唯一MAC地址,对一些应用程序来说,获取网卡MAC地址有时是必要的,使用VC提供的NetBIOS网络编程接口可以方便获取网卡MAC地址。NetBIOS中所用的函数声明、常数等等均是在头文件nb30.h内定义的,nb30.h中一些类型在wtypes.h中定义,另外,若想使用NetBIOS,须连接的库是netapi32.lib。调用NetBIOS函数时,使用uRetCode = netbios(&ncb)语句,其入口参数&ncb为指向一网络控制块(NCB)的指针。在该NCB结构中,包含了为执行一个NetBIOS命令相应需预先准备(在调用前)或命令执行结果(在调 Read More
posted @ 2012-08-02 17:05 玄色青春 Views(2247) Comments(0) Diggs(0)
从网上看到VS2010使用的时候一些问题:大家帮我看下明明使用了_T(text)为什么还是出错呢?编译错误。 _T只能把字符串文字量(也就是双引号括起来的字符串)或者字符文字量(也就是单引号括起来的字符)转化为所需的样子。它无法把一个CHAR转化为一个TCHAR,也无法把一个LPSTR转化为一个LPTSTR。为什么会这样呢?答案是:因为C++语法。 目前的C++语法,支持两种字符串。一种是直接用引号括起的,比如"Hello, World.",另一种是用引号括起,前面再加一个字母L的,比如L"Hello, World."。前一种字符串的类型是char*,或 Read More
posted @ 2012-08-01 15:54 玄色青春 Views(208) Comments(0) Diggs(0)
法打开预编译头文件的解决方法及预编译头原理2009-05-18 00:06:13|分类: 电脑应用 |标签: |字号大中小订阅 1、用VC.NET编辑程序,按Ctrl+F7,出现下列错误:fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or directory解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。2、先打开一个以前做了一下的工程,编译通过,能运行。我就稍微修改了一下代码(只是修 改一个参数使写入INI文件的整数由0变为10),这时编译通不过了,提示头 Read More
posted @ 2012-07-30 17:21 玄色青春 Views(291) Comments(0) Diggs(0)
句柄的本质/句柄是什么 2011-06-30 16:29 34人阅读 评论(0) 收藏 举报句柄的本质一、书上定义:<<Microsoft Windows 3 Developer''s Workshop>>(Microsoft Press,by Richard Wilton) 在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)、任务(task)、实例 (instance)、文件(file)、内存块(block of memory)、菜单(menu)、控制(control)、字体(font)、资源(resource),包括图标 Read More
posted @ 2012-07-04 09:34 玄色青春 Views(248) Comments(0) Diggs(0)
libxml(一)摘要Libxml是个有免费许可的用于处理XML、能轻松跨越多个平台的C语言库。这个指南提供他的基本函数的例子。绪论Libxml是个实现读、创建及操纵XML数据功能的C语言库。这个指南提供例子代码并给出他基本功能的解释。在这个项目的主页上有Libxml及更多关于他可用的资料。包含有完整的API文件。这个指南并不能替代这些完整的文件,不过阐明功能需要使用库来完成基本操作。 这个指南基于一个简单的XML应用,他使用我写的一篇文章生成,他包含有元数据和文章的主体。本指南中的例子代码示范怎么做到:&#8226; 解析文件&#8226; 取得指定元素的文本&#82 Read More
posted @ 2012-03-12 16:30 玄色青春 Views(2553) Comments(0) Diggs(0)
原文地址:CreateCompatibleBitmap的使用作者:爱ric函数功能:该函数创建与指定的设备环境相关的设备兼容的位图。 函数原型:HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight); 参数: hdc:设备环境句柄。 nWidth:指定位图的宽度,单位为像素。 nHeight:指定位图的高度,单位为像素。 返回值:如果函数执行成功,那么返回值是位图的句柄;如果函数执行失败,那么返回值为NULL。若想获取更多错误信息,请调用GetLastError。 备注:由CreateCompatibleBit... Read More
posted @ 2012-02-08 15:36 玄色青春 Views(1042) Comments(0) Diggs(0)