- 博客(39)
- 收藏
- 关注
转载 32位/64位机上常用数据类型字节数
可用如sizeof(char),sizeof(char*)等得出32位编译器char :1个字节char*(即指针变量):4个字节(32位的寻址空间是2^32,即32个bit,也就是4个字节。同理64位编译器)short int : 2个字节int: 4个字节unsigned int : 4个字节float: 4个字节double: 8个字节long:
2011-10-31 16:37:08 1000
转载 多重继承及虚继承中对象内存的分布
原文:http://www.tbdata.org/archives/878这篇文章主要讲解G++编译器中虚继承的对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。问题拿捏得十分到位,下面是我对原文的翻译,原文见这里(By Edsko de Vries, January 2006)。本文是介绍C
2011-10-31 16:34:54 556
转载 公有继承、保护继承和私有继承
原文:http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派
2011-10-28 15:46:04 865
转载 C++函数返回引用
舉一個簡單的例子int & B(int &n){n++;return n;}int main(){int a = 10;int & b = B(a); // 調用 B, 傳遞的是 a 的引用// 到了 B 裏, n 就是指 a,// return n; 就相當是 return a;// 返回到 b 的就是 a 的引用, b 就是 a// 對 n
2011-10-28 15:29:49 835
转载 强制修改const char*类型的数据
原文:http://blog.csdn.net/btwsmile/article/details/6772672C++是一门类型安全(type-safe)的编程语言,它对类型的检查是十分严格的。一个const char*类型的数据是不允许被修改的,如果程序违反了这条规定,编译器将毫不留情地提示错误,不让通过。作为程序员,须知道这样的限制是很有实际意义的,毕竟大多数情况下我们需要类型安全的代
2011-10-28 14:16:21 3635
转载 初步认识dll,在VS2010平台上创建并使用dll
原文:http://blog.csdn.net/btwsmile/article/details/6676802一、为什么需要dll代码复用是提高软件开发的重要途径。一般而言,只要某部分代码具有通用性,就可以将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的情况是各类应用程序框架,如ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给
2011-10-28 14:13:28 838
转载 也谈C++内存区域
众所周知,C++内存区域被分为5大类:栈、堆、自由存储区、全局/静态存储区、常量存储区。 栈由编译器控制,栈空间的申请、使用和释放全权由编译器处理。这里的“全权处理”意思是责任归属,并不是说编译器在程序运行时介入管理。实际上,编译器的工作在编译期就完成了,它对栈的管理体现在编译时对寄存器esp的维护上。 堆即程序员使用new和delete操作符进行管理的内存区域。对堆的访问往往
2011-10-28 14:07:19 1152
转载 浅谈构造函数与析构函数的调用顺序
构造函数 先看看构造函数的调用顺序规则,只要我们在平时编程的时候遵守这种约定,任何关于构造函数的调用问题都能解决;构造函数的调用顺序总是如下:1.基类构造函数。如果有多个基类,则构造函数的调用顺序是某类在类派生表中出现的顺序,而不是它们在成员初始化表中的顺序。2.成员类对象构造函数。如果有多个成员类对象则构造函数的调用顺序是对象在类中被声明的顺序,而不是它们出现在成员初始化表
2011-10-28 13:32:50 25863 5
转载 C++中 Static作用和使用方法
C++中Static作用和使用方法1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至
2011-10-28 10:02:18 3988
转载 怎么计算c++中各个数据类型的取值范围
在c++中,我们都知道各个数据类型的值都有各自所能表达的范围,举个例子来说吧,我们以整型变量int为例说明怎样去计算数据类型的取值范围:我们假设int在vc++开发环境中占用两个字节的单元,这只是为了简化过程的,事实上我们都知道它占四个字节的。从二进制的原码说起:如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767 最小为111111
2011-10-27 16:44:18 1844
转载 memset函数不能给int(整型)数组初始化赋值
如下demo是可以的,能把数组中的元素值都设置成字符1,#include #include using namespace std;int main(){ char a[5]; memset(a,'1',5); for(int i = 0;i cout "; system("pause"); return 0;
2011-10-27 15:55:09 5249 2
转载 Drupal的发行版
原文:http://www.wannianchuan.net/node/116像linux有ubuntu、redhat、fedora 等发行版一样,drupal的发行版从无到有,开始逐渐的多起来。下面是整理的一些发行版,漏下的请大家在评论中补充。Acquia Drupal这是我知道的第一个drupal发行版,Acquia公司出品。该发行版集成了一批常用的模块和几个不错的主题,还
2011-10-27 14:10:20 1951
转载 世界银行推出基于Open Atrium的内部交流系统 - 用Open Atrium构建高度自定义的、企业级的内部网解决方案
原文:http://www.wannianchuan.net/node/23世界银行上周推出了基于Open Atrium的内部交流系统,该系统拥有接近1000名用户。借助该系统,他们分布于世界各地的通讯团队现在可以更好的定位以便于协同工作。他们主要的交流工具已经根据特定的业务流程进行了自定义调整。通过以Open Atrium为起点,同时借助特性网站建设模式,使我们能够在
2011-10-27 14:07:12 2589
转载 Open Atrium : 基于Drupal的团队协作解决方案
原文:http://www.wannianchuan.net/node/118Open Atrium 是一套开源的内部网安装包,它以 Drupal 为基础,速度快,易于安装和使用,并且因为它是开源软件,所以您可以对它进行二次开发,以满足自己的特定需求。所有的组织,不管是大还是小,集中式的还是分布式的,对于通过在线交流促进工作完成的需求都在不断增长:您可能有一个日历共享软件,一套
2011-10-27 14:03:40 3379 1
原创 Drupal7 forms_api_reference翻译 + Demo
(元素)Elements属性名通常需要创建这个表单元素时定义。默认值是属性名称旁边的括号中表示,如果它们存在。actions描述:一个包装元素,去组合一个或多个button按钮在表单中。使用的“action”的元素作为数组的关键,有助于确保在主题适当的造型,使其他模块,以适当的改变表单的action属性: #access,#after_build,#attributes#chi
2011-10-27 13:56:30 3367
转载 Drupal7 forms_api_reference.html
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/7Form Controls图例:X= 可以被这个类型使用- = 不能被这个类型使用#typecheckboxcheckboxesdatefieldsetfilemachine_name
2011-10-27 13:45:41 811
原创 Druapl 全局变量(Globals)
名称位置描述$base_pathdeveloper/globals.phpDrupal安装的基本路径。例如:http://localhost/drupal7/则$base_path=drupal7$base_rootdeveloper/globals.php主机的根URL,不
2011-10-27 13:37:05 864
转载 C语言宏定义##连接符和#符的使用
C语言宏定义##连接符和#符的使用 C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:
2011-10-27 10:38:29 601
原创 Windows Gvim工程配置
1. 安装gvim下在安装gvim后,默认路径为C:\Program Files\Vim,即$VIM变量保存的值其中:vim72为gvim 系统默认目录,vimfiles 为gvim 用户设定目录2. 安装插件下载插件放在C:\ProgramFiles\Vim\vimfiles\plugin目录下可以下载自己喜欢的vim配色放在C:\Program Files\
2011-10-27 09:49:04 5484
转载 Drupal 7教程Top 10前瞻
Drupal 7 Beta版还在激烈酝酿中,已知就引入了大量新特性,无论安全、性能、可靠性还是模板系统都有大幅改进,柏枫新站也将基于Drupal 7来搭建,随着Drupal 7的逐步完善,相关的教程也陆续出版。今天摘选其中最具代表性的10本经典Drupal系列教程,以供同好参考。Drupal是目前最好的全功能CMS系统,但因为过于抽象和灵活,似的入门难度较大,所以国内的用户很少
2011-10-26 17:27:31 1370
原创 U53364工程设置概要说明
1.生成Lib切换工程目录到c:\NECTOOLS32\src\CC78K0\BAT执行mkstupf053364命令会在c:\NECTOOLS32\src\CC78K0\LIB下生成*.lib文件拷贝所有*.lib文件到c:\NECTOOLS32\lib78k0覆盖全部文件2设置工程打开工程文件,在PMplus中选择Project->Project
2011-10-26 17:22:39 499
原创 Nec78K0系列BootSwap问题与解决方法
PreprocessingThe following preprocessing of bootswapping is performed.− Setting of hardware environment− Declaring start of self programming− Setting of software environment− Initializing en
2011-10-26 17:14:39 1966
转载 如何使用C的扩展功能-78K0(callt/callf)
在NEC的单片机里面,有两块比较特殊的区域,一个是从40H-7FH;另一块是800H-FFFH。前一块区域叫做CALLT区域,后一块区域叫做CALLF区域。我们先不管这两块名字的由来,因为就个人来看,名字完全是当年起名人的一时兴致使然。说一下这两两个函数的特点:CALLT函数:定义一个函数的时候,如果前面加上关键字callt/__callt,那么这个函数就是callt函数了。cal
2011-10-26 17:01:55 1646
转载 (英文)为什么Linux内核中,许多#defines都使用了 do { ... } while(0)?
Why do a lot of #defines in the kernel use do { ... } while(0)?There are a couple of reasons: (from Dave Miller) Empty statements give a warning from the compiler so this is why you see #defin
2011-10-26 16:36:23 661
转载 (C程序) 递归算法详细分析
C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。但是在阶乘的计算里,递归并没有提供任何优越之处。在菲波那契数列中,它的效率更是低的非常恐怖。 这里有
2011-10-26 14:49:08 966
转载 如何判断两个矩形相交
引用:http://www.cnblogs.com/0001/archive/2010/05/04/1726905.html假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形 rect1{(minx1, miny1)(maxx1, maxy1)} rect2{(minx2, miny2)(maxx2, maxy2)}
2011-10-26 09:30:52 1381
转载 螺旋队列算法分析
螺旋队列算法分析引用:http://blog.csdn.net/yhmhappy2006/article/details/2934435螺旋队列的样子如下图: 两大规律:1。螺旋规律(红线)2。奇数平方规律(紫线) 问题描述: 设1的坐标是(0,0),的方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(0,
2011-10-26 09:20:03 489
原创 用户空间使用Linux数据结构之红黑树(2)
1.5 RB树的操作红黑树的最主要特征,在于其颜色满足特定的性质。普通的节点添加,极有可能破坏红黑树的性质,所以在添加红黑树节点时,需要将整个红黑树的颜色进行调整。在理解插入、删除操作之前要先理解两个函数,即红黑树的左旋和右旋。左旋和右旋都是为了保证平衡二叉树的性质不变,即是通过左旋和右旋来保证红黑二叉树的第五条性质满足。红黑二叉树的添加跟普通的二叉树的添加类似。不过在添加节点后需要对
2011-10-26 09:14:46 1662
原创 用户空间使用Linux数据结构系列之红黑树(1)
用户空间使用Linux数据结构系列之红黑树 本文通过对Linux内核中红黑树的源码分析,通过大量图示描述红黑树的原理,最后通过移植改造Linux内核红黑树代码,使用户空间也能使用Linux红黑树.本着从群众中来,回到群众中去的原则,本文很多内容都是参考网上资料,但本身不影响大家阅读,因为我们的目的很明确,就是掌握原理,并在实践中应用。 红黑树由来:
2011-10-26 09:09:27 4485
原创 柔软的心
柔软的心——送给我的乐乐 虽然我的发型难看 虽然我的脸上长斑 虽然我的腰身粗壮 虽然我的步履蹒跚 但我甘之若饴 心甘情愿 美丽的天使在我身体里面 浅睡安然 每一脚 每一拳 都让我的心越发柔软 我愿用所有的血 所有的暖 与它相偎相伴 我要感受它软糯的声音
2011-10-25 21:29:53 772
转载 VI/VIM 键盘图
原文:http://coolshell.cn/articles/5479.html Green = 存活级 Yellow = 感觉良好 Orange / Blue = 高级 Red = 专家级下面的图片点击可以看大图:给程序员的VIM速查卡(点击看大图)你还可以下载PDF版的和Excel版的,如果你是色盲的话,还有蓝色版PDF的。如果你不是很
2011-10-25 21:21:37 1054
转载 怎样查看启动文件_cstartn(NEC)
; Copyright (C) NEC Electronics Corporation 1990,2005; NEC ELECTRONICS CONFIDENTIAL AND PROPRIETARY; All rights reserved by NEC Electronics Corporation.; This program must be used solely for the
2011-10-25 20:59:04 1516
转载 C++ 对象的内存布局(下)
C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。 其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1
2011-10-25 20:54:37 440
转载 C++ 对象的内存布局(上)
C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel 前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了
2011-10-25 20:53:06 362
转载 C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTT
2011-10-25 20:50:51 463
原创 推荐工具:微软AppLocale
可以在不用更改“区域和语言选项”(不需要重启系统)的情况下,使应用程序读取非Unicode文件(本文示例为日文EA文档),微软出品。1.下载 & 安装::http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=16712f0b-a935-4140-9163-1514c89f6ddd2.使用
2011-10-25 20:44:37 1171
原创 Sed+Grep 快速替换查找字段
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl路径`命令分解:grep 查找字段 -rl路径 列出”路径”中” 查找字段” 的所有文件sed –I "s/查找字段/替换字段/g" 在上面”查找列出的文件”(grep命令)中,执行"s/查找字段/替换字段/g" 操作,并将操作的结果作用在“查找列出的文件”源文件上.注意:红色字符为键盘
2011-10-25 20:31:37 6075
原创 用户空间使用Linux 数据结构系列导读篇
我们知道许多复杂数据结构,都是由一些简单数据对象组成。这些简单的对象可以被增加至该结构,也可以从中删除。实现复杂数据结构的比较好的方法是使用抽象数据类型。抽象数据类型的主要思想是把一个数据结构的实现完全封装起来,并且只提供一套健壮的接口来操纵它。这样做的好处是做到了干净的隔离。实现数据结构时完全不必了解谁来使用它,使用者也不必知道数据结构的内部实现。双方都只要基于接口来实现代码。另一方面,
2011-10-25 17:01:32 1165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人