08 2012 档案

摘要:C/C++的全局变量初始化与不初始化的区别作者:佚名出处:IT专家网2009-09-11 07:00字号:T|T-->本文介绍C/C++的全局变量初始化与不初始化的区别。 在C语言里,全局变量如果不初始化的话,默认为0,也就是说在全局空间里: int x =0; 跟 int x; 的效果看起来是一样的。但其实这里面的差别很大,强烈建议大家所有的全局变量都要初始化,他们的主要差别如下: 编译器在编译的时候针对这两种情况会产生两种符号放在目标文件的符号表中,对于初始化的,叫强符号,未初始化的,叫弱符号。 连接器在连接目标文件的时候,如果遇到两个重名符号,会有以下处理规则: 1、如果有多个.. 阅读全文
posted @ 2012-08-21 09:55 玄色青春 阅读(6194) 评论(0) 推荐(0)
摘要:程序在的内存中的分配(常量,局部变量,全局变量,程序代码)一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放在函数体中定义的变量通常是在栈上,用malloc, calloc, realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都 阅读全文
posted @ 2012-08-19 20:26 玄色青春 阅读(1525) 评论(0) 推荐(0)
摘要:众所周知,一个网卡对应唯一MAC地址,对一些应用程序来说,获取网卡MAC地址有时是必要的,使用VC提供的NetBIOS网络编程接口可以方便获取网卡MAC地址。NetBIOS中所用的函数声明、常数等等均是在头文件nb30.h内定义的,nb30.h中一些类型在wtypes.h中定义,另外,若想使用NetBIOS,须连接的库是netapi32.lib。调用NetBIOS函数时,使用uRetCode = netbios(&ncb)语句,其入口参数&ncb为指向一网络控制块(NCB)的指针。在该NCB结构中,包含了为执行一个NetBIOS命令相应需预先准备(在调用前)或命令执行结果(在调 阅读全文
posted @ 2012-08-02 17:05 玄色青春 阅读(2264) 评论(0) 推荐(0)
摘要:从网上看到VS2010使用的时候一些问题:大家帮我看下明明使用了_T(text)为什么还是出错呢?编译错误。 _T只能把字符串文字量(也就是双引号括起来的字符串)或者字符文字量(也就是单引号括起来的字符)转化为所需的样子。它无法把一个CHAR转化为一个TCHAR,也无法把一个LPSTR转化为一个LPTSTR。为什么会这样呢?答案是:因为C++语法。 目前的C++语法,支持两种字符串。一种是直接用引号括起的,比如"Hello, World.",另一种是用引号括起,前面再加一个字母L的,比如L"Hello, World."。前一种字符串的类型是char*,或 阅读全文
posted @ 2012-08-01 15:54 玄色青春 阅读(218) 评论(0) 推荐(0)