﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Reyang</title><link>http://www.cppblog.com/Reyang/</link><description>程序人生,我刚刚开始.....</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:08:01 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:08:01 GMT</pubDate><ttl>60</ttl><item><title>迎接新的挑战</title><link>http://www.cppblog.com/Reyang/archive/2009/02/19/74291.html</link><dc:creator>泠水潮思</dc:creator><author>泠水潮思</author><pubDate>Thu, 19 Feb 2009 07:03:00 GMT</pubDate><guid>http://www.cppblog.com/Reyang/archive/2009/02/19/74291.html</guid><wfw:comment>http://www.cppblog.com/Reyang/comments/74291.html</wfw:comment><comments>http://www.cppblog.com/Reyang/archive/2009/02/19/74291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Reyang/comments/commentRss/74291.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Reyang/services/trackbacks/74291.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大学毕业半年多了，工作半年多了,有人从NB变成shability,我一直都是shability，在公司做了很多，老是加班，对付那份恶心的代码，完成功能，技术却没啥提高，反而是一大节一大节的丢了根基，原来我走在shability的道路上。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一直想得也必较多，我这个shability吧，搞技术不够专心，老是关注经济民生问题，弄得自己像个悲观的老人~公司里比较好的一哥们儿离职了，让本少心里那个难过，项目延期了三个月，缺泛管理，超出了本少的时间预算，眼见自己要成了shability，本少果断的决定:&#8220;强化自己的实力!追求自己的理想,迎接更大的挑战!&#8221;额...说了这么伟大振奋人心的话，其实不过：偶要重新找份工作，一步步跟进！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工作半年，体重增加，本少的形象荡然无存，恋人的成绩，也无形了让我压力成指数上升。所以，我坚定的选择自己去摔跤，让别人去笑吧~<br>&nbsp;&nbsp;&nbsp;&nbsp; 要见识自己有多落后不见前面的领旗大军了，以下，记录一下接下来三个月的生活吧。<br>&nbsp;&nbsp;&nbsp;&nbsp; 今天下午看《程序员面试宝典》，额，曾经没看过，失误啊~这本书，找工作的程序员，毕业生都可以看看。<br>&nbsp;&nbsp;&nbsp;&nbsp; 我怕失意，所以，这段时间好好练练吧，欧~我的小心脏啊~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<img src ="http://www.cppblog.com/Reyang/aggbug/74291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Reyang/" target="_blank">泠水潮思</a> 2009-02-19 15:03 <a href="http://www.cppblog.com/Reyang/archive/2009/02/19/74291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>opengl视点与视口</title><link>http://www.cppblog.com/Reyang/archive/2008/01/01/40160.html</link><dc:creator>泠水潮思</dc:creator><author>泠水潮思</author><pubDate>Tue, 01 Jan 2008 06:48:00 GMT</pubDate><guid>http://www.cppblog.com/Reyang/archive/2008/01/01/40160.html</guid><wfw:comment>http://www.cppblog.com/Reyang/comments/40160.html</wfw:comment><comments>http://www.cppblog.com/Reyang/archive/2008/01/01/40160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Reyang/comments/commentRss/40160.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Reyang/services/trackbacks/40160.html</trackback:ping><description><![CDATA[在刚开始学习时,有很多名词相近,各种叫法都有,容易混淆和弄错.&nbsp;下面说明一下.&nbsp;
<p align=left>1 视点:&nbsp; 也称视图,是指所处的观察点,也就是摄像机所在的地方.比如调用gluLookAt(),就是用来调整视点位置的.<br>2 视口:&nbsp; 也称视区.是指投影后在程序窗口中显示的范围.形象的讲,也就是摄像机拍下来照片,把这张照片经过缩放变换放在你想要放置的窗口位置上.调用glViewport()来设置视口的,改变里面的参数,就好理解.<br>3.世界坐标系&lt;又称眼睛坐标系&gt;与目标坐标系:<br>&nbsp;&nbsp;&nbsp; 首先理解世界坐标系,它是固定不变的. 可以这样设想：以窗口中心为原点，水平向右为+x轴，竖直向上为+y轴，垂直于屏幕指向我们为+z轴。长度单位这样来定： 窗口范围按此单位恰好是(-1,-1)-(1,1)。任何时候OpenGL都保存着一个当前的目标坐标系，在初始条件下，世界坐标系与目标坐标系是重合的，但我们可以对&#8220;目标坐标系&#8221;作各种变换： 平移、伸缩、旋转。经过这些变换之后，世界坐标系与目标坐标系不再重合.<br><br></p>
<img src ="http://www.cppblog.com/Reyang/aggbug/40160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Reyang/" target="_blank">泠水潮思</a> 2008-01-01 14:48 <a href="http://www.cppblog.com/Reyang/archive/2008/01/01/40160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++宏 复习</title><link>http://www.cppblog.com/Reyang/archive/2007/09/23/32739.html</link><dc:creator>泠水潮思</dc:creator><author>泠水潮思</author><pubDate>Sun, 23 Sep 2007 12:22:00 GMT</pubDate><guid>http://www.cppblog.com/Reyang/archive/2007/09/23/32739.html</guid><wfw:comment>http://www.cppblog.com/Reyang/comments/32739.html</wfw:comment><comments>http://www.cppblog.com/Reyang/archive/2007/09/23/32739.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/Reyang/comments/commentRss/32739.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Reyang/services/trackbacks/32739.html</trackback:ping><description><![CDATA[C++提供的编译预处理功能主要有以下三种：<br>　　（一） 宏定义<br>　　（二） 文件包含<br>　　（三） 条件编译<br><br>在C++中，我们一般用const定义符号常量。很显然，用const定义常量比用define定义常量更好。<br>　　<span style="COLOR: #ff0000">在使用宏定义时应注意的是：<br></span>　　（a） 在书写#define 命令时，注意&lt;宏名&gt;和&lt;字符串&gt;之间用空格分开，而不是用等号连接。<br>　　（b） 使用#define定义的标识符不是变量，它只用作宏替换，因此不占有内存。<br>　　（c） 习惯上用大写字母表示&lt;宏名&gt;，这只是一种习惯的约定，其目的是为了与变量名区分，因为变量名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通常用小写字母。<br>　　如果某一个标识符被定义为宏名后，在取消该宏定义之前，不允许重新对它进行宏定义。取消宏定义使用如下命令：<br>　　#undef&lt;标识符&gt;<br>　　其中，undef是关键字。该命令的功能是取消对&lt;标识符&gt;已有的宏定义。被取消了宏定义的标识符，可以对它重新进行定义。<br>　　宏定义可以嵌套，已被定义的标识符可以用来定义新的标识符。例如：<br>　　#define PI 3.14159265<br>　　#define R 10<br>　　#define AREA (PI*R*R)<br>单的宏定义将一个标识符定义为一个字符串，源程序中的该标识符均以指定的字符串来代替。前面已经说过，预处理命令不同于一般C++语句。因此预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于宏定义只是用宏名对一个字符串进行简单的替换，因此如果在宏定义命令后加了分号，将会连同分号一起进行置换。<br><br><strong><span style="COLOR: #ff0000">带参数的宏定义</span><br></strong>　　带参数的宏定义的一般形式如下：<br>　　#define &lt;宏名&gt;（&lt;参数表&gt;） &lt;宏体&gt;<br>　　其中， &lt;宏名&gt;是一个标识符，&lt;参数表&gt;中的参数可以是一个，也可以是多个，视具体情况而定，当有多个参数的时候，每个参数之间用逗号分隔。&lt;宏体&gt;是被替换用的字符串，宏体中的字符串是由参数表中的各个参数组成的表达式。例如：<br>　　#define SUB(a,b) a-b<br>如果在程序中出现如下语句：<br>　　result=SUB(2, 3)<br>则被替换为：<br>　　result=2-3；<br>如果程序中出现如下语句：<br>　　result= SUB（x+1, y+2）;<br>则被替换为：<br>　　result=x+1-y+2;<br>　　在这样的宏替换过程中，其实只是将参数表中的参数代入到宏体的表达式中去，上述例子中，即是将表达式中的a和b分别用2和3代入。<br>　　我们可以发现：<span style="COLOR: #ff0000">带参的宏定义与函数类似。</span>如果我们把宏定义时出现的参数视为形参，而在程序中引用宏定义时出现的参数视为实参。那么上例中的a和b就是形参，而2和3以及x+1和y+2都为实参。在宏替换时，就是用实参来替换&lt;宏体&gt;中的形参。<br>在<span style="COLOR: #ff0000">使用带参数的宏定义时需要注意</span>的是：<br>　　（1）带参数的宏定义的&lt;宏体&gt;应写在一行上，如果需要写在多行上时，在每行结束时，使用续行符 "\"结<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 束，并在该符号后按下回车键，最后一行除外。<br>　　（2）在书写带参数的宏定义时，&lt;宏名&gt;与左括号之间不能出现空格，否则空格右边的部分都作为宏体。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如：<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #define ADD (x,y) x+y<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;将会把"（x,y）x+y"的一个整体作为被定义的字符串。<br>　<img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emstar.gif" align=absMiddle border=0>（3）定义带参数的宏时，宏体中与参数名相同的字符串适当地加上圆括号是十分重要的，这样能够避免<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可能产生的错误。例如,对于宏定义：<br>　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　#define SQ(x) x*x<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当程序中出现下列语句：<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m=SQ(a+b);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 替换结果为：<br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m=a+b*a+b;<br>这可能不是我们期望的结果，如果需要下面的替换结果：<br>　　m=(a+b)*(a+b);<br>应将宏定义修改为：<br>　　#define SQ(x) (x)*(x) <br>　　对于带参的宏定义展开置换的方法是：在程序中如果有带实参的宏（如"SUB（2,3）"），则按"#define"命令行中指定的字符串从左到右进行置换。如果串中包含宏中的形参（如a、b），则将程序语句中相应的实参（可以是常量、变量或者表达式）代替形参，如果宏定义中的字符串中的字符不是参数字符（如a-b中的-号），则保留。这样就形成了置换的字符串。 
<img src ="http://www.cppblog.com/Reyang/aggbug/32739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Reyang/" target="_blank">泠水潮思</a> 2007-09-23 20:22 <a href="http://www.cppblog.com/Reyang/archive/2007/09/23/32739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC之初</title><link>http://www.cppblog.com/Reyang/archive/2007/09/22/32651.html</link><dc:creator>泠水潮思</dc:creator><author>泠水潮思</author><pubDate>Sat, 22 Sep 2007 00:27:00 GMT</pubDate><guid>http://www.cppblog.com/Reyang/archive/2007/09/22/32651.html</guid><wfw:comment>http://www.cppblog.com/Reyang/comments/32651.html</wfw:comment><comments>http://www.cppblog.com/Reyang/archive/2007/09/22/32651.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/Reyang/comments/commentRss/32651.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Reyang/services/trackbacks/32651.html</trackback:ping><description><![CDATA[&nbsp; 我选择的书是&lt;深入浅出MFC&gt;,刚刚开始,大四了,从现在开始,一切都不太晚.&nbsp; 刚刚看了一章多.<br><br>&nbsp; 坚持将VC++学好,以前也东一下西一下,跟风去JAVA,C#,结果什么也没学到.<br>&nbsp; 闻道有先后,术业有专攻. 
<img src ="http://www.cppblog.com/Reyang/aggbug/32651.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Reyang/" target="_blank">泠水潮思</a> 2007-09-22 08:27 <a href="http://www.cppblog.com/Reyang/archive/2007/09/22/32651.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>