Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1132402
  • 博文数量: 300
  • 博客积分: 37
  • 博客等级: 民兵
  • 技术积分: 772
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-26 04:46
文章分类
文章存档

2017年(4)

2016年(7)

2015年(19)

2014年(72)

2013年(71)

2012年(127)

发布时间:2013-01-11 14:14:15

在C和C++语言开发中,指针、内存一直是学习的重点。因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患。  因此,无论如何,我们都要对内存有一个清晰的理解。  一、对内的分配  32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF)。即理论上支持如下的大数组:char szBuffer[2*1024*1024*1024];  当然,由于在实际运行时,程序还有代码段、临时变量段、动态内存申请等,实际上是不可能用到......【阅读全文】

阅读(1207) | 评论(0) | 转发(0)

发布时间:2013-01-08 22:27:07

第一部分:宏为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率。但是宏也有很多的不尽人意的地方。1、宏不能访问对象的私有成员。2、宏的定义很容易产生二意性。我们举个例子:#define square(x) (x*x)我们用一个数字去调......【阅读全文】

阅读(785) | 评论(0) | 转发(0)

发布时间:2013-01-05 16:23:17

“我周围一群无能之辈,因为我不擅长拍马,所以不得提升,他们迫害我!“ “我的部分经理把本来应该属于我的功劳都给抢了,你说说有这样的人吗?“ “公司让我完成我根本无法完成的工作,头天加班到12点第2天晚点到公司还要扣我的钱,太没人性了,他们怎么能这样对我呢?”   我经常能听到类似的报怨,而且我必须承认其中有很多是事实,但今天我要说的是“不要像受害者一样工作!”   受害者是怎样工作的? 一般情况下,受害者会这么想: 发生什么问题之后,会认为全都是“别人“的错,我是无辜的受害者,我是被迫害的对象; ü  项目进展延后,是因为部门里太多只看不干的家伙......【阅读全文】

阅读(751) | 评论(0) | 转发(0)

发布时间:2012-12-26 23:09:06

    Linux的老江湖们对这个概念当然不会陌生,然而刚接触Linux的新手们就会被文件系统这个概念弄得晕头转向,恰好我当年正好属于后者。从windows下转到Linux的童鞋听到最多的应该是fat32和ntfs(在windows 2000之后所出现的一种新型的日志文件系统),那个年代经常听到说“我要把C盘格式化成ntfs格式,D盘格式化成fat32格式”。一到Linux下,很多入门Linux的书籍中当牵扯到文件系统这个术语时,二话不说,不管三七二十一就给出了下面这个图,然后逐一解释一下每个目录是拿来干啥的、里面会放什么类型的文件就完事儿了,弄得初学者经常“丈二和尚摸不着......【阅读全文】

阅读(1009) | 评论(0) | 转发(0)

发布时间:2012-12-26 23:06:45

  继续上一篇《 linux下so动态库一些不为人知的秘密(中) 》介绍so搜索路径,还有一个类似于-path,叫LD_RUN_PATH环境变量, 它也是把路径编译进可执行文件内,不同的是它只设置RPATH。 [stevenrao] $ g++ -o demo -L /tmp/  -ltmp main.cpp [stevenrao] $ readelf -d demo Dynamic section at offset 0xb98 contains 25 entries:  Tag   &nb......【阅读全文】

阅读(1348) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册