﻿<?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++博客-宠辱不惊，看庭前花开花落；去留无意，望天空云卷云舒-随笔分类-C++</title><link>http://www.cppblog.com/kenny/category/16614.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 28 Apr 2011 18:12:52 GMT</lastBuildDate><pubDate>Thu, 28 Apr 2011 18:12:52 GMT</pubDate><ttl>60</ttl><item><title>C++著名程序库的比较和学习经验</title><link>http://www.cppblog.com/kenny/archive/2011/04/28/145251.html</link><dc:creator>Kenny Jiang</dc:creator><author>Kenny Jiang</author><pubDate>Thu, 28 Apr 2011 14:21:00 GMT</pubDate><guid>http://www.cppblog.com/kenny/archive/2011/04/28/145251.html</guid><wfw:comment>http://www.cppblog.com/kenny/comments/145251.html</wfw:comment><comments>http://www.cppblog.com/kenny/archive/2011/04/28/145251.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/kenny/comments/commentRss/145251.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenny/services/trackbacks/145251.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1、C++各大有名库的介绍——C++标准库<br>2、C++各大有名库的介绍——准标准库Boost<br>3、C++各大有名库的介绍——GUI<br>4、C++各大有名库的介绍——网络通信<br>5、C++各大有名库的介绍——XML<br>6、C++各大有名库的介绍——科学计算<br>7、C++各大有名库的介绍——游戏开发<br>8、C++各大有名库的介绍——线程<br>9、C++各大有名库的介绍——序列化<br>10、C++各大有名库的介绍——字符串<br>11、C++各大有名库的介绍——综合<br>12、C++各大有名库的介绍——其他库<br>13、C++名人的网站&nbsp;&nbsp;<a href='http://www.cppblog.com/kenny/archive/2011/04/28/145251.html'>阅读全文</a><img src ="http://www.cppblog.com/kenny/aggbug/145251.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenny/" target="_blank">Kenny Jiang</a> 2011-04-28 22:21 <a href="http://www.cppblog.com/kenny/archive/2011/04/28/145251.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>define的用法与注意事项</title><link>http://www.cppblog.com/kenny/archive/2011/04/26/145087.html</link><dc:creator>Kenny Jiang</dc:creator><author>Kenny Jiang</author><pubDate>Tue, 26 Apr 2011 14:13:00 GMT</pubDate><guid>http://www.cppblog.com/kenny/archive/2011/04/26/145087.html</guid><wfw:comment>http://www.cppblog.com/kenny/comments/145087.html</wfw:comment><comments>http://www.cppblog.com/kenny/archive/2011/04/26/145087.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/kenny/comments/commentRss/145087.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenny/services/trackbacks/145087.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:       #define是C语言中提供的宏定义命令，其主要目的是为程序员在编程时提供一定的方便，并能在一定程度上提高程序的运行效率，但在学习时往往不能理解该命令的本质，总是在此处产生一些困惑，在编程时误用该命令，使得程序的运行与预期的目的不一致，或者在读别人写的程序时，把运行结果理解错误，这对C语言的学习很不利。下面将分别对基本用法和特殊做详细介绍。&nbsp;&nbsp;<a href='http://www.cppblog.com/kenny/archive/2011/04/26/145087.html'>阅读全文</a><img src ="http://www.cppblog.com/kenny/aggbug/145087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenny/" target="_blank">Kenny Jiang</a> 2011-04-26 22:13 <a href="http://www.cppblog.com/kenny/archive/2011/04/26/145087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++中四种类型转换符的总结</title><link>http://www.cppblog.com/kenny/archive/2011/04/25/144995.html</link><dc:creator>Kenny Jiang</dc:creator><author>Kenny Jiang</author><pubDate>Mon, 25 Apr 2011 14:05:00 GMT</pubDate><guid>http://www.cppblog.com/kenny/archive/2011/04/25/144995.html</guid><wfw:comment>http://www.cppblog.com/kenny/comments/144995.html</wfw:comment><comments>http://www.cppblog.com/kenny/archive/2011/04/25/144995.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/kenny/comments/commentRss/144995.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenny/services/trackbacks/144995.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: reinterpret_cast操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换，即二进制值没有变。<br>dynamic_cast主要用于类层次间的上行转换和下行转换，还可以用于类之间的交叉转换。 <br>const_cast运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外， type_id和exdivssion的类型是一样的。 &nbsp;&nbsp;<a href='http://www.cppblog.com/kenny/archive/2011/04/25/144995.html'>阅读全文</a><img src ="http://www.cppblog.com/kenny/aggbug/144995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenny/" target="_blank">Kenny Jiang</a> 2011-04-25 22:05 <a href="http://www.cppblog.com/kenny/archive/2011/04/25/144995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类模板和模板函数连接出错处理</title><link>http://www.cppblog.com/kenny/archive/2011/04/23/144841.html</link><dc:creator>Kenny Jiang</dc:creator><author>Kenny Jiang</author><pubDate>Sat, 23 Apr 2011 04:46:00 GMT</pubDate><guid>http://www.cppblog.com/kenny/archive/2011/04/23/144841.html</guid><wfw:comment>http://www.cppblog.com/kenny/comments/144841.html</wfw:comment><comments>http://www.cppblog.com/kenny/archive/2011/04/23/144841.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/kenny/comments/commentRss/144841.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenny/services/trackbacks/144841.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 对C++编译器而言，当调用函数的时候，编译器只需要看到函数的声明。当定义类类型的对象时，编译器只需要知道类的定义，而不需要知道类的实现代码。因此，因该将类的定义和函数声明放在头文件中，而普通函数和类成员函数的定义放在源文件中。<br>       但在处理模板函数和类模板时，问题发生了变化。要进行实例化模板函数和类模板，要求编译器在实例化模板时必须在上下文中可以查看到其定义实体；&nbsp;&nbsp;<a href='http://www.cppblog.com/kenny/archive/2011/04/23/144841.html'>阅读全文</a><img src ="http://www.cppblog.com/kenny/aggbug/144841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenny/" target="_blank">Kenny Jiang</a> 2011-04-23 12:46 <a href="http://www.cppblog.com/kenny/archive/2011/04/23/144841.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>函数调用的区别：_cdecl以及_stdcall</title><link>http://www.cppblog.com/kenny/archive/2011/04/19/144539.html</link><dc:creator>Kenny Jiang</dc:creator><author>Kenny Jiang</author><pubDate>Tue, 19 Apr 2011 05:23:00 GMT</pubDate><guid>http://www.cppblog.com/kenny/archive/2011/04/19/144539.html</guid><wfw:comment>http://www.cppblog.com/kenny/comments/144539.html</wfw:comment><comments>http://www.cppblog.com/kenny/archive/2011/04/19/144539.html#Feedback</comments><slash:comments>11</slash:comments><wfw:commentRss>http://www.cppblog.com/kenny/comments/commentRss/144539.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenny/services/trackbacks/144539.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 几乎我们写的每一个WINDOWS API函数都是__stdcall类型的，首先，需要了解两者之间的区别： WINDOWS的函数调用时需要用到栈（STACK，一种先入后出的存储结构）。当函数调用完成后，栈需要清除，这里就是问题的关键，如何清除？如果我们的函数使用了_cdecl，那么栈的清除工作是由调用者，用COM的术语来讲就是客户来完成的。这样带来了一个棘手的问题，不同的编译器产生栈的方式不尽相同，那么调用者能否正常的完成清除工作呢？答案是不能。如果使用__stdcall，上面的问题就解决了，函数自己解决清除工作。所以，在跨（开发）平台的调用中，我们都使用__stdcall（虽然有时是以WINAPI的样子出现）。那么为什么还需要_cdecl呢？当我们遇到这样的函数如 fprintf()它的参数是可变的，不定长的，被调用者事先无法知道参数的长度，事后的清除工作也无法正常的进行，因此，这种情况我们只能使用 _cdecl。到这里我们有一个结论，如果你的程序中没有涉及可变参数，最好使用__stdcall关键字。&nbsp;&nbsp;<a href='http://www.cppblog.com/kenny/archive/2011/04/19/144539.html'>阅读全文</a><img src ="http://www.cppblog.com/kenny/aggbug/144539.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenny/" target="_blank">Kenny Jiang</a> 2011-04-19 13:23 <a href="http://www.cppblog.com/kenny/archive/2011/04/19/144539.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>memmove、memcpy、strcpy</title><link>http://www.cppblog.com/kenny/archive/2011/04/16/144362.html</link><dc:creator>Kenny Jiang</dc:creator><author>Kenny Jiang</author><pubDate>Sat, 16 Apr 2011 13:50:00 GMT</pubDate><guid>http://www.cppblog.com/kenny/archive/2011/04/16/144362.html</guid><wfw:comment>http://www.cppblog.com/kenny/comments/144362.html</wfw:comment><comments>http://www.cppblog.com/kenny/archive/2011/04/16/144362.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kenny/comments/commentRss/144362.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenny/services/trackbacks/144362.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: strcpy只能处理字符串；如果拷贝带有特殊字符的串，就只能用memcpy或memmove。&nbsp;&nbsp;<a href='http://www.cppblog.com/kenny/archive/2011/04/16/144362.html'>阅读全文</a><img src ="http://www.cppblog.com/kenny/aggbug/144362.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenny/" target="_blank">Kenny Jiang</a> 2011-04-16 21:50 <a href="http://www.cppblog.com/kenny/archive/2011/04/16/144362.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>