摘要: 此文转自别人博客,感谢原作者1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表 void foo(...); void foo(parm_list,...);2:函数参数的传递原理 函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:先介绍一下可变参数表的调用形式以及原理: 首先是参数的内存存放格式:参数存放在内存的堆栈段中,在执行函数的时候,从最后一个开始入栈。因此栈底高地址,栈顶低地址,举个例子如下: void func(int x, float y, char z); 那么,调用函数的时候,实参 char z 先进栈,然后是 float y,最后是 int x,因此 阅读全文
posted @ 2011-09-18 21:09 雪狼的程序故事 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 第一: //////////Visula C++ 6.0环境 #include<iostream.h>void main(){int a=3;int *p=new int;p=&a;cout<<*p<<endl;delete p; /////////有错误} 第二: //////////Visual C++ 6.0环境 #include<iostream.h>void main(){int a=3;int *p=new int;*p=a;cout<<*p<<endl;delete p;}其中第一个程序存在错误(会生 阅读全文
posted @ 2011-09-18 16:45 雪狼的程序故事 阅读(176) 评论(1) 推荐(1) 编辑
摘要: 今天看了看opengl的融合技术,联系前一段时间老师让我改的一个用他自己的框架实现的3d物体透明融合的程序,感觉到老师说的思路,不可以实现。因为三维的透明物体,简单的使用融合功能和融合因子是不够的,三维物体有远近,因此三维物体的绘制过程是利用的是深度缓冲技术。这样的话,对于绘制透明物体与不透明物体,顺序是十分关键的。一般来说,应该先画不透明物体,因为透明物体的绘制需要opengl的融合功能,glEnable(GL_BLEND);,但是融合功能一旦启动,会影响后继物体的着色。但是先画不透明物体,又会产生新的问题。因为透明物体往往在不透明物体的前面,所以在深度测试中,透明物体的点会通过测试,所以. 阅读全文
posted @ 2011-09-18 12:39 雪狼的程序故事 阅读(4266) 评论(0) 推荐(0) 编辑