上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
摘要: 在C++中,数组永远不会按值传递。它是传递第一个元素(准确地说是第0个)的指针。例如,如下声明: void putValues(int[10]);被编译器视为: void putValues(int*);数组的长度与参数声明无关。因此,下列三个声明是等价的: void putValues(int*); void putValues(int[]); void putValues(int[10]);因为数组被传递为指针,所以这对程序员有两个含义:1、在被调函数内对参数数组的改变将被应用到数组实参上而不是本地拷贝上。当用作实参的数组必须保持不变时,程序员需要保留数组的拷贝。函数可以通过把参数类型声明 阅读全文
posted @ 2012-09-17 17:32 冷夜 - 网游编程技术 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 原文地址:关于c_str()作者:Jae_Joong c_str() 是c++ 中 string类 (class) 的 函数,它能把 string类 的对象里的字符串 转换成 C 中 char 型变量的字符串。c_str()返回了一个指向常量数组的指针,例如: string s1 = "hello"; constchar* str= s1.c_str(); 由于c_str函数的返回值是const char* 的,若想直接赋值给char*,就需要我们进行相应的操作转化,下面是这一转化过程。需要注意的是,操作c_str()函数的返回值时,只能使用c字符串的操作函数,如:strc 阅读全文
posted @ 2012-09-13 15:59 冷夜 - 网游编程技术 阅读(587) 评论(0) 推荐(0) 编辑
摘要: strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。void *memcpy( void *dest, const void *src, size_t count );char * strcpy(char * dest, const char * src) // 实现 阅读全文
posted @ 2012-09-13 15:47 冷夜 - 网游编程技术 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p一、可能的组合:(1)const char*p(2)char const*p(3)char *const p(4)const char **p(5)char const**p(6)char *const *p(7)char **const p当然还有在(5)、(6)、(7)中再插入一个const的若干情况,不过分析了以上7中,其他的就可类推了!二、理解助记法宝:1。关键看const 修饰谁。2。由 阅读全文
posted @ 2012-09-13 15:02 冷夜 - 网游编程技术 阅读(258) 评论(0) 推荐(0) 编辑
摘要: #include "stdio.h"#include "string.h"void main(){char aa[10];printf("%d",strlen(aa));printf("%d",sizeof(aa));}程序运行得到结果是strlen(aa)=15.sizeof(aa)=10;这是怎么回事呢?strlen是有效字符串的长度,不包含‘\0’,与初始化有关系,而sizeof与初不初始化没有关系。下面我们看看它们的区别吧(以下都是在网上查的)strlen(char*)函数求的是字符串的实际长度,它求得方法 阅读全文
posted @ 2012-09-12 13:41 冷夜 - 网游编程技术 阅读(182) 评论(0) 推荐(1) 编辑
摘要: 一、 优点 使用内联汇编可以在 C/C++ 代码中嵌入汇编语言指令,而且不需要额外的汇编和连接步骤。在 Visual C++ 中,内联汇编是内置的编译器,因此不需要配置诸如 MASM 一类的独立汇编工具。这里,我们就以 Visual Studio .NET 2003 为背景,介绍在 Visual C... 阅读全文
posted @ 2012-09-11 17:21 冷夜 - 网游编程技术 阅读(3525) 评论(0) 推荐(0) 编辑
摘要: 转之:http://www.cnblogs.com/hust-ruan/archive/2011/12/09/2282035.html左右手坐标系众所周知,OpenGL使用的是右手坐标系,而Direct3D使用的是左手坐标系。除了上面Z轴的方向不一样外,左右手坐标系的还有其他区别:正向旋转方向:在左手系中用Left-Hand Rule判别,正方向是顺时针方向。在右手系中,用Right-Hand Rule判别,是逆时针方向。叉积的方向:在右手坐标系中,叉积的方向通过Right-Hand Rule确定,而在左手坐标系中,叉积的方向则由Left-Hand Rule 确定。World Space 坐标 阅读全文
posted @ 2012-09-10 09:42 冷夜 - 网游编程技术 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 多边形可以分解为多个三角形,所以只用实现三角形的填充即可实现多边形的填充,三角形主要分为3类:A左边长B右边长C平底或平顶。平底或平顶三角形比较简单,填充他们只要分别根据两边的斜率求出Y坐标每增加一个单位相应的X坐标,这样就能求出相应的一对一对左右坐标,然后连接这连个坐标,最后就能实现三角形的填充。具体的分析过程请查阅:Windows游戏编程大师技巧 第八章效果图: 代码并未经过优化,可能存在很多BUG,只用于演示用代码://画平底或平顶填充三角形bool CEnginApp::DrawSolidPloygon(ScPoint spoint[],int lenth,UNINT *vb_star 阅读全文
posted @ 2012-09-06 11:23 冷夜 - 网游编程技术 阅读(560) 评论(0) 推荐(0) 编辑
摘要: Bresenham画圆算法不失一般性,假设圆的圆心位于坐标原点(如果圆心不在原点,可以通过坐标平移使其与原点重合),半径为R。以原点为圆心的圆C有四条对称轴:x = 0, y = 0, x = y和x = -y。若已知圆弧上一点P1=C(x, y),利用其对称性便可以得到关于四条对称轴的其它7个点,即: P2=C(x,-y), P3=C(-x, y), P4=C(-x,-y), P5=C(y,x), P6=C(-y,x), P7=C(y,-x), P8=C(-y,-x)。这种性质称为八对称性。因此,只要扫描转换八分之一圆弧,就可以通过圆弧的八对称性得到整个圆。【Bresenham... 阅读全文
posted @ 2012-09-03 15:52 冷夜 - 网游编程技术 阅读(27998) 评论(2) 推荐(0) 编辑
摘要: 对线段进行裁剪,返回裁剪后的线段,完全自己想的没什么优化,应该还有些BUG暂时不做深究,效果图如下未裁剪:裁剪后:代码://点typedef struct sc_point{ int x,y; sc_point(){x=0;y=0;};}ScPoint;//线typedef struct sc_line{ ScPoint point1,point2;}ScLine;bool CEnginApp::ClearLine(const ScLine *line,ScLine &line2){ if (!line) return false; int x1=0,x2=0,y1=0,y2=0,te 阅读全文
posted @ 2012-08-31 13:39 冷夜 - 网游编程技术 阅读(446) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页