代码改变世界

指针函数与函数指针的区别

2013-08-12 08:20 by 北漂男孩, 178 阅读, 0 推荐, 收藏, 编辑
摘要:一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针类型标识符 *函数名(参数表) int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示:float *fun();float *p;p = fun(a);注意指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数 阅读全文

c++ problems

2013-08-12 02:01 by 北漂男孩, 166 阅读, 0 推荐, 收藏, 编辑
摘要:0、虚函数与纯虚函数1、float型变量和“零值”比较的方法:constfloatEPSINON=0.000001;if((x>=-EPSINON)&&(x=”或“<=”形式。如果写成if(x==0.0),则是错误的。因为1.0在计算机中可能存为0.999999或1.00001等,很难恰好是1.0 阅读全文

3D渲染管线

2013-08-11 22:24 by 北漂男孩, 635 阅读, 0 推荐, 收藏, 编辑
摘要:渲染管线 从最开始的Input Assembler阶段到最终的Output Merger阶段,每个阶段处理完的输出,传递给下一个阶段,作为其输入。1.Input Assembler Stage 这个阶段的主要目的是根据用户提供的顶点及索引信息,构建多边形,主要有点、线段、三角形。给定顶点和索引,构建多边形的方法取决于所使用的基本图元的拓扑类型(Primitive Topology)。D3D11中常见的拓扑类型有以下几种: 1.Point List:定义的每一个顶点作为一个单独的点进行绘制,如图: 2.Line Strip:所有的顶点按顺序逐个连接成线段,如图:3.Line List:所有的顶点 阅读全文

四元数

2013-08-11 21:11 by 北漂男孩, 200 阅读, 0 推荐, 收藏, 编辑
摘要:四元数 一个四元数包含一个标量分量 w和一个3D向量分量v,或者分开。 [w,v] 或[w,(x,y,z)] 四元数的共轭 Q*=[wv]*=[w-v] 四元数的逆q-1定义为四元数的共轭除以它的模。 四元数乘积的逆等于各个四元数的逆的相反的顺序相乘。 阅读全文

指针

2013-08-11 20:05 by 北漂男孩, 107 阅读, 0 推荐, 收藏, 编辑
摘要:指针 阅读全文

game programs

2013-08-11 18:11 by 北漂男孩, 733 阅读, 0 推荐, 收藏, 编辑
摘要:矩阵 对于XMMATRIX的初始化,可以有多种方法,一种方法是传4个XMVECTOR参数,每个XMVECTOR对应矩阵的一行;第二种方法是直接传递16个浮点数,代表整个矩阵的内容;第三种方法是用一个FLOAT型的数组,代表整个矩阵的内容。当然,这三种方法都有点麻烦,不过在实际中,自己来手动初始化矩阵的地方也不多,了解下其初始化方法即可。其次,XMMATRIX重载了()操作符,用来访问矩阵中的成员,用法跟正常矩阵访问完全一样,即传递两个参数(row, col)即可。 XMMATRIX也重载了*和*=操作符,用途很明显,用来进行矩阵的乘积。 在函数定义中,类型为XMMATRIX的形参必须用CXMM 阅读全文

二叉树中的那些常见的面试题

2013-08-11 15:54 by 北漂男孩, 186 阅读, 0 推荐, 收藏, 编辑
摘要:关于二叉树二叉树作为树的一种,是一种重要的数据结构,也是面试官经常考的东西。昨天看了一下关于树中的面试题,发现二叉树中的面试题比较常见的题型大概有下面几个:创建一颗二叉树(先序,中序,后序)、遍历一颗二叉树(先序,中序,后序和层次遍历)、求二叉树中叶子节点的个数、求二叉树的高度、求二叉树中两个节点的最近公共祖先、打印和为某一值的全部路径、求某一节点是否在一个树中等等。再详细的说这些面试题之前,不妨先看一下几种常见的二叉树:完全二叉树:若二叉树的高度是h,除第h层之外,其他(1~h-1)层的节点数都达到了最大个数,并且第h层的节点都连续的集中在最左边。想到点什么没?实际上,完全二叉树和堆联系比较 阅读全文

反向迭代

2013-08-11 12:16 by 北漂男孩, 488 阅读, 0 推荐, 收藏, 编辑
摘要:这里主要讨论的是反向迭代器的一个很特殊、也很容易出错的性质,即它的“逻辑位置”与“物理位置”。先通过看一个例子开始:[cpp]view plaincopyvectorvec;for(vector::size_typei=1;i::iteratoritr=vec.begin()+4;cout::reverse_iteratorr_itr(itr);cout<<*r_itr<<endl;这个例子中,vec中存放从1到9的9个连续数字,并初始化一个普通迭代器指向数字5,打印输出结果显而易见,为5。然后再初始化一个反向迭代器,该迭代器指向与普通迭代器一样的物理位置,然后打印输出 阅读全文

c++知识点

2013-08-11 11:05 by 北漂男孩, 479 阅读, 0 推荐, 收藏, 编辑
摘要:C++中最重要, 也最令人头疼的事情之一就是资源管理。原则上,每次在堆区用关键字new申请一块内存,必须对应一个delete来释放它。对应一般的小程序,通过细心地写代码,很容易做到。但当程序变大、变复杂的时候,仅仅依靠谨慎的编写程序也是很难做到的。考虑以下几种情况:1. 用new申请资源与用delete释放资源之间的跨度比较大,很容易在做完中间一系列的任务后忘记最初曾申请过资源,导致未释放它。2. 一个资源被多个变量引用,这样每个引用结束后当然不能及时的释放,因为此时并不知道其他地方是否还在引用这个它。这样也容易导致在最后一个引用后依然没释放资源。3. 对一个资源的引用存在多个分支,因此要保. 阅读全文

搜索目录

2013-08-11 10:34 by 北漂男孩, 265 阅读, 0 推荐, 收藏, 编辑
摘要:1、使用Camera的几个步骤 2、C++中的异常安全性 3、字符串逆序 4、数组 5、简单几何体的绘制 6、内存对齐 HLSL和c++内存对齐异同 7、this指针 存放在特定寄存器??? 阅读全文