
C++基础
文章平均质量分 80
yunyun1886358
这个作者很懒,什么都没留下…
展开
-
C++模板使用小技巧7则
转载的模板使用小技巧转载 2010-07-22 23:41:00 · 1566 阅读 · 0 评论 -
C++中变量的作用域与生命周期
今天在论坛上看到有朋友发帖问道:既然静态全局变量与全局变量都存储在全局数据区,为什么作用域却不一样呢?也许答案非常简单:C++就是这么规定的,静态全局变量与全局变量的唯一区别就是作用域不同。 对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局原创 2010-05-29 00:23:00 · 32380 阅读 · 12 评论 -
浅谈VC中的字节对齐
前几天时,在公司和同事说到了字节对齐,一直对这个概念比较模糊,只是在《程序员面试宝典》中看到过简单的描述和一些面试题。后来在论坛中有看到有朋友在询问字节对齐的相关问题,自己也答不上来,觉得应该研究一下,所以就有了这一篇博文,是对学习的一个总结,也是对成长轨迹的一个记录。 字节对齐,又叫内存对齐,个人理解就是一种C++中的类型在内存中空间分配策略。每一种类型存储的起始地址,都要求是一个对齐模数(alignment modulus)的整数倍。问题来了,为什么要有这种策略?计算中内存中的数据原创 2010-06-06 21:13:00 · 13785 阅读 · 0 评论 -
参数传递二维数组
今天在论坛上有朋友提问:声明函数如下void function(int** pInt),意图是想参数传递一个二维数组。于是就定义了一个二维数组,比如 int[1][1],然后调用函数。结果如何?当然是失败了,编译器提示:cannot convert parameter 1 from 'int [1][1]' to 'int **',参数类型不匹配。上述过程我自己也试了,当然不匹配,类型完全不一样嘛。然后我就想了:如果要将一个二维数组作为形参,那么函数该怎么声明? 来看《C++ Prim原创 2010-06-10 00:31:00 · 88077 阅读 · 25 评论 -
C++中前置声明的应用与陷阱
本文描述了前置声明的应用的几个主要场景及需要注意的几个关键点。原创 2010-06-15 17:14:00 · 25287 阅读 · 12 评论 -
extern关键字
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。还有extern "C"转载 2010-06-16 11:20:00 · 1703 阅读 · 0 评论 -
static关键字的用法
两篇关于static关键字的文章。static有两种用法:面向过程程序设计中的static 和 面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。转载 2010-06-16 20:08:00 · 1592 阅读 · 0 评论 -
函数调用约定和函数名修饰规则
<br /> 使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就会出现堆栈异常。这些现象通常是出现在C和C++的代码混合使用的情况下或在C++程序中使用第三方的库的情况下(不是用C++语言开发的),其实这都是函数调用约定(Calling Convention)和函数名修饰(Decorated Name)规则惹的祸。函数调用方式决定了函数参数入栈的转载 2010-06-19 01:00:00 · 905 阅读 · 1 评论