i++与++i哪个效率更高

摘要: 简单的比较前缀自增运算符和后缀自增运算符的效率是片面的,因为存在很多因素影响这个问题的答案。首先考虑内建数据类型的情况:如果自增运算表达式的结果没有被使用,而是仅仅简单地用于增加一元操作数,答案是明确的,前缀法和后缀法没有任何区别。编译器的处理都应该是相同的,很难想象得出有什么编译器实现可以别出心裁地在二者之间制造任何差异。示例程序如下。#includeintmain(){inti=0;intx=0;i++;++i;x=i++;x=++I;return0;}上面的代码在VISUALC++6.0上编译得到的汇编如下:;Line5mov DWORDPTR_i$[dbp],0;Line6mov DW 阅读全文
posted @ 2013-06-28 13:43 菜丝inside 阅读(2386) 评论(1) 推荐(0) 编辑

[转载]解决VMware Tools installation cannot be started manually while Easy Install is in progress

摘要: 很多尝试VMware 7虚拟机的朋友都会发现,用Ghost xp安装Windows以后,在开始安装VMware Tools时,会弹出显示如下内容的警告框:VMware Tools installation cannot be started manually while Easy Install is in progress.解决方法:在开启虚拟机操作系统的情况下,在虚拟机设置中更改floppy为auto detect。然后点击菜单中的安装VMWare Tools,虚拟操作系统中的光驱里就会有VMWare Tools的安装程序了,自行安装即可 阅读全文
posted @ 2013-01-29 10:25 菜丝inside 阅读(762) 评论(0) 推荐(0) 编辑

Ubuntu 11.10 下安装 Oracle的JDK,JRE

摘要: Java有2种,一种是Ubuntu源自带的open-java(icedtea),一个是Oracle的sun-java6。前者是Ubuntu默认的Java,一般更新后系统就自带了,这里讲后者的安装配置。安装Eclipse之前, 需要安装JDK+JDR. 网站上搜索出来的安装方法大部分已经不能适用. 但是使用下面的方法可以准确的安装出来,估计也能适合其它Linux发行版本。1. 从Oracle网站下载适合Linux的JDK。下载网页见这里我下载的是其中 jdk-6u38-linux-i586.bin2. 假如下载的路径在/home/gh, 先执行下面命令将该文件复制到/usr/lib/jvm下面准 阅读全文
posted @ 2013-01-03 17:49 菜丝inside 阅读(1219) 评论(0) 推荐(0) 编辑

C++嵌套类及对外围类成员变量的访问

摘要: 在一个类中定义的类称为嵌套类,定义嵌套类的类称为外围类。 定义嵌套类的目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象。这样可以提高类的抽象能力,并且强调了两个类(外围类和嵌套类)之间的主从关系。下面是一个嵌套类的例子: class A { public: class B { public: … private: … }; void f(); private: int a; } 其中,类B是一个嵌套类,类A是外围类,类B定义在类A的类体内。 对嵌套类的若干说明: 1、从作用域的角度看... 阅读全文
posted @ 2012-06-14 12:56 菜丝inside 阅读(7645) 评论(0) 推荐(0) 编辑

[转载]C++中 使用数组作为map容器VAlue值的解决方法

摘要: 1)是用Vector容器代替数组2)使用数组指针(需要注意局部变量的问题,指针是否需要用new创建)intred[3]={1,0,0};intgreen[3]={0,1,0};intblue[3] ={0,0,1};std::map<int,int(*)[3]>colours;colours.insert(std::pair<int,int(*)[3]>((GLUT_LEFT_BUTTON,&red));colours.insert(std::pair<int,int(*)[3]>((GLUT_MIDDLE_BUTTON,&blue));co 阅读全文
posted @ 2012-06-06 12:16 菜丝inside 阅读(11334) 评论(0) 推荐(1) 编辑

OK6410-A编译u-boot时遇到的问题及解决

摘要: 以下红色是Shell操作, #是终端提示符一般不用手动输入Ubuntu是最新版本V11我的交叉编译器下的文件列表:root@ubuntu:/usr/local/arm/4.3.2/bin# lsarm-linux-addr2linearm-none-linux-gnueabi-addr2linearm-linux-ar arm-none-linux-gnueabi-ararm-linux-as arm-none-linux-gnueabi-asarm-linux-c++ arm-none-linux-gnueabi-c++arm-linux-c++filt arm-none-lin... 阅读全文
posted @ 2012-04-11 11:39 菜丝inside 阅读(4440) 评论(1) 推荐(0) 编辑

[转载]VMware 虚拟机安装Ubuntu 11.10使用share folders共享目录

摘要: 第一步,安装VMware Tools 恢复虚拟机ubuntu后,首先,点击 虚拟机——安装VMware Tools(Install VMware Tools),这时我们会在Ubuntu系统桌面上发现VMware Tools的光盘图标。双击这个文件图标后,会发现有两个文件,manifest.txt和 VMwareTools-8.4.5-324285.tar.gz,很OK,说明我们的VMware Tools下载成功了。我们将VMwareTools-8.4.5-324285.tar.gz拷贝到 /tmp 下cd /tmptar zxvf VMwareTools-8.4.5-324285.tar.g. 阅读全文
posted @ 2012-04-08 18:01 菜丝inside 阅读(7284) 评论(1) 推荐(1) 编辑

Windows XP做主机设置虚拟机vmware下安装的Ubuntu 11 通过无线网络上网攻略

摘要: 1. 首先在VMware虚拟机里面设置成桥接模式,如下图:2. 在vmware菜单Edit下有Virtual Network Editor,即虚拟网络编辑器,把桥接设置成你的无线网卡,如下图:经过以上简单地设置,你的虚拟机里的Ubuntu就可以通过无线网卡上网了。如果没有虚拟网络编辑器,那说明你安装的vmware是精简版的。而且精简版的VMware Workstation不仅是没有虚拟网络编辑器的。而且VMTools也只有windows的。没有Linux的。 阅读全文
posted @ 2012-04-07 22:09 菜丝inside 阅读(2008) 评论(0) 推荐(0) 编辑

new/delete 和malloc/free 的区别(代码部分)

摘要: 原理部分可以参见别人的博文http://www.cppblog.com/Lee/archive/2009/03/09/75990.html声明://NewDelete.h#ifndef _NEWDELETE__H_#define _NEWDELETE__H_void TestMallocFree();void TestNewDelete();void TestNew();#endif实现:View Code //NewDelete.cpp#include <stdio.h>#include <malloc.h>class CObject{public: CObject( 阅读全文
posted @ 2012-03-20 15:29 菜丝inside 阅读(211) 评论(0) 推荐(0) 编辑

结合extern谈谈头文件的作用

摘要: 很多情况下,程序员可能突然产生这样的问题:为什么非得在文件的首位置#include "... .h"? 我include源文件行不行。其实任何后缀的文本文件(忽视编码情况)都可以被#include,但是你去#include 源文件会不会出问题呢?我们看下面测试代码://Single.cpp#ifndef __SINGLE__CPP_#define __SINGLE__CPP_#include <stdio.h>void Fun(){ printf("Fun...\n");}#endif/*__SINGLE__CPP_*///main.cpp# 阅读全文
posted @ 2012-03-15 16:45 菜丝inside 阅读(6738) 评论(1) 推荐(3) 编辑