- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 大端模式和小端模式转化
在工作中遇到一个问题,数据是以大端模式存储的,而机器是小端模式,必须进行转换,否则使用时会出问题。一、定义:大端模式(Big Endian):数据的高字节,保存在内存的低地址中;数据的低字节,保存在内存的高地址中。小端模式(Little Endian):数据的高字节,保存在内存的高地址中;数据的低字节,保存在内存的低地址中。例如:16位宽的数0x1234,在不同的模式下,存储方
2015-01-18 12:20:41
43047
原创 No space left on device
在向crontab中添加新的记录时,添加完成后保存报错:/var/spool/cron/tmp.XXXXnewi7F: No space left on device从报错原因看,是磁盘满了。使用df -lh查看,发现/var仍然有容量。使用df -i查看,发现/var已经使用了100%。df -i是什么呢?是用于查看文件结点的,Linux下的目录会建立索引结点(inode),用于索引
2014-12-05 18:31:06
3419
原创 json格式及json在Python和C/C++中的使用
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,因而在工业界得到广泛应用。 json有
2014-03-27 22:01:29
7017
转载 C++中使用hiredis
hiredis是redis数据库的C接口,目前只能在linux下使用,几个基本的函数就可以操作redis数据库了。1、redisContext* redisConnect(const char *ip, int port) 说明:该函数用来连接redis数据库,参数为数据库的ip地址和端口,一般redis数据库的端口为6379。 类似的提
2014-03-21 20:44:53
23259
1
原创 C++使用curl_easy_setopt()获取内容不完整
最近在代码中发现一个问题,我们的C++框架中,使用Curl来获取数据,但是若数据长度较多时,获取的数据不完整,只有后半部分,推测是由于接受数据的缓冲区设置过小造成的。后来调大了缓冲区,问题还是没有解决。 在我们的代码中,使用curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_memory_callback);函数来
2014-03-21 20:14:29
9384
原创 Linux中的定时任务crontab
在Linux中,可以使用crontbab指定定时任务。 使用命令crontab -e即可编辑crontab,在里面添加需要的定时任务。用户的定时任务文件为 /var/spool/cron/用户名 ,crontab -e命令将相当于vim /var/spool/cron/用户名。1、如何写crontab crontab中每一行代表一个任务,每个任务由周期和任务
2014-03-21 13:14:30
20858
1
原创 C++中的case标签
switch case语句在C++程序中使用的较为频繁,但是有很多细节可能平时不会注意到,本文总结一下switch case语句中的case标签。1、case是标签 先来说下标签(label)。如下一段代码:#includeusing namespace std;int main(){ http://www.youkuaiyun.com cout<<"hello
2014-03-20 21:34:47
13177
1
原创 C++中那些不常用的关键字
C++有很多关键字,比如if、else、for、continue、break这类常用关键字。还有一些使用不是很频繁的关键字,容易被忘记,这里总结一下,对于笔试面试也许会有帮助。1、explicit 这个关键字对于好的代码是必要的。 使用explicit关键字,将构造函数声明为显式构造函数,以防止隐式的类型转换。 class Test{pu
2013-11-22 11:02:46
2733
原创 如何限制对象只能建立在堆上或者栈上
在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。 动态建立类对象,是使用new运算符将对象建立在堆空间
2013-09-25 10:32:57
10678
5
原创 红蓝军对抗
一道智力题:有五个人进行对抗比赛,每次对抗一部分人当红军,一部分人当蓝军。问,至少经过多少次对抗,五个人中的任意两个人都进行过一次红蓝对抗和蓝红对抗? 为满足题意,至少需要出现10种一对一对阵方式,以ABCDE记这五个人,AB表示A扮演红军,B扮演蓝军,BA则刚好相反,则题目转换为:至少需要经过多少次对抗,使得集合{AB,AC,AD,AE,BC,BD,BE,CD,CE,DE}中每
2013-09-14 22:11:36
3509
原创 char str[]与char *str的区别
在C语言中,对字符串的操作主要有两种方式,一是使用字符数组,char str[];二是使用字符指针。那么二者有什么区别呢?下面将分述二者的使用,最后进行比较。一、字符数组 使用char str[]定义一个字符数组str,中括号内可以写上数字表示数组大小,也可以不写。如果不写数字,则必须为字符数组提供初始值,以便编译器进行内存分配。可以使用字符串字面值(string
2013-08-27 16:45:21
32668
2
原创 sizeof浅析(三)——求类的大小
sizeof求类的大小和求结构体的大小,有一定的相似性,但又不完全相同,因为类存在这继承和派生、存在着虚函数。1、空类大小对于一个空类,使用sizeof求得其大小为1。2、简单类如下定义一个类,class A{public: int a;private: char b;}; 使用sizeof求这种简单类,结果和求结构体的sizeof是一
2013-08-24 11:22:34
8725
1
转载 sizeof浅析(二)
1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value
2013-08-23 23:58:21
1644
原创 sizeof浅析
sizeof是面试笔试中一个常见的考点,这里总结一下关于sizeof的知识。一、sizeof概念 sizeof不是函数,而是操作符。该操作符在C++中的优先级为3,比* 、/、%运算的优先级高,和负号、正号、取地址、指针等运算符同一级别。 sizeof的返回值为size_t,在头文件中被定义为unsigned int类型。 sizeof的作
2013-08-23 17:02:10
2085
原创 C++的引用使用
引用是C++中一个很重要的概念。英文为reference,引用定义了对象的一个别名。当对象的值修改时,引用会发生对应的改变;当引用的值发生改变时,被引用的对象的值也发生变化,因为对象和对象的应用操作的是同一地址单元。1、引用的定义 使用int & a = b;即可定义整型变量b的引用a。 (1)由于引用是对象的别名,因此引用在定义的时候就必须初始化。int
2013-08-18 10:27:34
1075
转载 软件需求分析文档模版(转载自国家计算机标准和文件模板)
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑
2013-07-04 16:56:31
2040
原创 while(cin>>val)的原理浅析
今天看书的时候看到代码while(cin>>val),忽然就在想这样写的合法性是如何判定的。我们都知道cin是一个流对象,而>>运算符返回左边的流对象,也就是说cin>>val返回cin,于是while(cin>>val)就变成了while(cin),问题就变成了一个流对象在判断语句中的合法性。 不管是while(cin)还是if(cin),都是合法的,为什么呢?我们自己定义一个类
2013-06-15 22:19:04
4231
转载 硬盘安装XP或win7系统
最近需要重装系统,发现机器的光驱坏掉了,更悲剧的是机器是好几年前的,主板太落伍,不支持USB启动,没办法,只能从硬盘安装系统了。 下面叙述硬盘安装XP或者win7系统的方法。一、硬盘安装XP XP系统已有10年历史了,即使是最新的SP3也是五年前甚至更久的产品了。作为微软有史以来最好用、覆盖面最广的操作系统,XP已经被研究的很透彻了。于是乎,我们可以看到
2013-04-16 11:50:36
1102
转载 sizeof浅析(一)——求结构体大小
运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。 C语言中的构造数据类型有三种:数组、结构体和共用体。 数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素的个
2013-04-14 22:34:36
30427
1
转载 使用Diskpart命令突破Windows7安装分区限制
许多用户在安装Windows7时都遇,安装程序创建的都是主分区,并没有创建逻辑分区的任何选项,这样的情况导致创建4个主分区后剩余的空间无法继续分配的情况,这使得许多用户情何以堪。很多用户都反映该问题,有的用户则利用第三方软件来辅助分区,但其实只要利用系统自带的Diskpart命令,即可快速解决Windows7安装分区限制。以下就对利用Diskpart命令为Windows7安装分区的方法进行解析,解
2013-04-10 16:04:57
1473
原创 VS2010下配置Ogre SDK1.8.1
之前写过文章,讲的是VS2008和Ogre1.7.1的配置,最近又用Ogre,发现之前的配置方法有一些问题,因为有些东西改了。弄了半天,终于搞定了,把配置过程贴出来。 1、下载Ogre SDK 1.8.1 for Visual C++ .Net 2010 (32-bit)点这里。这个没有64位的,32位的可以在64位系统下运行。对于用VS2008的同学,请选择Ogre SDK 1
2013-03-18 21:56:02
5243
原创 glOrtho2D函数
glOrtho2D函数是OpenGL中的二维裁剪函数,以前一直不太懂裁剪是什么意思,这两天在做OpenGL实验的时候发现这个函数的作用。 函数原型为void gluOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top)。 简单的解释下吧。比如说新建一个OpenGL窗口,大小是800*6
2013-03-17 22:25:50
8248
原创 VS2010+Win7下配置OpenGL
之前用VS2008+OpenGL时,配置很容易,主要分为三步,(1)将glut.h文件拷贝到Visual Studio安装目录下的VC\Include\GL目录中,若没有GL目录就新建一个;(2)将glut.lib和glut32.lib拷贝到Visual Studio安装目录下的VC\lib目录中;(3)将glut.dll和glut32.dll拷贝到C:\Windows\System32目录下。这
2013-03-17 21:41:03
1236
转载 OBJ文件格式详解
OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导,也可以通过Maya读写。比如你在3dsMax或LightWave中建了一个模型,想把它调到Maya里面渲染或动画,导出OBJ文件就是一种很好的选择。目前几乎所有知名的3D软件都支持OBJ文件的读写,不过其中
2013-03-02 10:28:31
51009
1
原创 VS2010下配置Bullet开发环境
Bullet是一个开源的物理引擎,介绍什么的就不写在这了,自行百度或者看维基百科去。这篇文章讲了怎么配置Bullet,大部分内容是从Bullet官网上来的。 首先下载Bullet,可以用SVN来获得最新版源码(svn checkout http://bullet.googlecode.com/svn/trunk/ bullet-read-only,已失效),也可以下载编
2012-12-06 00:15:47
5243
1
原创 G2M4解码
前几天收到一个视频文件,wmv格式的,用windows media player打开,告诉我说缺少合适的解码器,开始还以为是文件拷贝出问题了,后来在源地址那可以用wmp正常播放。我又尝试了qq player,只能播放声音,没有视频,说视频缺少解码器,未搜索到合适的解码器。暴风影音号称支持的格式特别多,同样只有声频没有视频,KM player也不行。 看来是解码器出问题了。这些播放器
2012-10-12 19:31:25
3560
转载 C++中堆和栈内存分配
一个由C/C++编译程序占用内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数参数值,局部变量值等。其操作方式类似于数据结构中栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—,全局变量和静态变量存储是放在一块,初始化全
2012-09-15 10:19:29
4982
转载 C++中的头文件和源文件
一、C++编译模式 通常,在一个C++程序中,只包含两类文件——cpp文件和h文件。cpp文件被称作C++源文件,里面放的都是C++的源代码;h文件则被称作C++头文件,里面放的也是C++的源代码。 C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里
2012-09-11 19:55:27
6945
原创 VS中C++代码折叠
用VS编写C#时,可以用#region name和#endregion,将代码分段,这样可以将代码折叠起来,当类过大,方法过长时,这种方法可以提高阅读效率,是人看着更舒服。 对于C/C++语言,#region失效。这不免让人郁闷。 VS对C/C++语言,默认仅折叠预处理命令(#include, #pragma等)、类、函数等。如果某个函数特别长,大大超出了屏幕范围,
2012-09-04 10:48:30
22467
转载 3D眼镜
自从电影《阿凡达》之后,3D眼镜迅速的在中国的市场流行起来,3D电影、3D游戏,甚至一些网站的首页也都是3D效果的。在淘宝网平台上,各类3D眼镜从一元到上万元都有,并且3D眼镜的立体观看方法差异很大,各个种类间不能通用,所以顾客要根据不同的需求来选择适合自己的3D眼镜。 3D眼镜如何选购呢?首先了解下3D眼镜的种类和制作原理 ,然后在基础上分析3D眼镜的优缺点和适用场合,这样就可以轻
2012-08-23 20:25:32
1756
转载 3D游戏引擎剖析
介绍 自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存在的游戏引擎开发出来,而大多数都以ID公司的Quake引擎为基础, 这些游戏包括Coun
2012-08-23 15:49:30
7324
原创 acrobat页面显示问题
最近对着电脑的时间比以前多太多了,每天都用Acrobat看pdf(千万别告诉我你用Adobe Reader),为了保护眼睛,需要更改下页面显示。 一、背景颜色 经常对着电脑看文档的人,需要修改下背景颜色。 通常默认的背景色都是白色的,阅读时间短倒还没什么,如果是在电脑前坐上好几个小时的人,可能眼睛就会特别不舒服。 360有个健康精灵和眼
2012-07-02 22:32:12
8613
原创 图形学研究实力
最近看了一些图形学的书,对一些牛叉的图形学研究单位有了一些了解。以下列举一些,排名不分先后。 1、斯坦福大学 斯坦福大学的计算机学院实力毋庸置疑,不要忘了硅谷是怎么来的。斯坦福大学是最早开始研究计算机的大学之一,于是,它的图形学实力自然不俗,实际上,在我心目中,斯坦福大学的图形学实力可排第一。 搞图形学的人应该没有不知道斯坦福兔子(Stanfo
2012-06-13 17:57:53
15153
3
原创 SIGGRAPH
这两天看了一些文章,今天来说说SIGGRAPH。 对于搞图形学的人来说,SIGGRAPH绝对是如雷贯耳。SIGGRAPH是计算机图形界(也包括图像)最顶级的会议,没有之一,是全世界的图形学者公认的最高端的会议。 SIGGRAPH全称是Special Interest Group for Computer Graphics and Intera
2012-06-13 16:25:46
26688
转载 PLY文件
一、PLY简介 PLY文件格式是Stanford大学开发的一套三维mesh模型数据格式,图形学领域内很多著名的模型数据,比如Stanford的三维扫描数据库(其中包括很多文章中会见到的Happy Buddha, Dragon, Bunny兔子),Geogia Tech的大型几何模型库,北卡(UNC)的电厂模型等,最初的模型都是基于这个格式的。 PLY多边形文件格
2012-05-21 17:33:36
38839
转载 .off文件
物体文件格式(.off)文件用于表示给定了表面多边形的模型的几何体。这里的多边形可以有任意数量的顶点。 普林斯顿形状Banchmark中的.off文件遵循以下标准: OFF文件全是以OFF关键字开始的ASCII文件; 下一行说明顶点的数量、面片的数量、边的数量。边的数量可以安全地省略; 顶点按每行一个列出x、y、z坐标。
2012-05-21 17:13:53
5721
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人