<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CodePy.Net &#187; 编程语言</title>
	<atom:link href="http://codepy.net/category/%e9%92%88%e5%af%b9%e7%bc%96%e7%a8%8b%e8%af%ad%e8%a8%80%e7%9a%84%e7%ac%94%e8%ae%b0/feed" rel="self" type="application/rss+xml" />
	<link>http://codepy.net</link>
	<description>专注网络开发：Python,PHP,Vim,Linux 分享我的快乐 -- Share My Happiness</description>
	<lastBuildDate>Sun, 15 Jan 2012 16:20:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP5.3 和CakePHP1.2的兼容性问题</title>
		<link>http://codepy.net/2009/09/30/cakephp-with-php5-3.html</link>
		<comments>http://codepy.net/2009/09/30/cakephp-with-php5-3.html#comments</comments>
		<pubDate>Wed, 30 Sep 2009 12:45:22 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[编程语言]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php5.3]]></category>

		<guid isPermaLink="false">http://codepy.net/?p=160</guid>
		<description><![CDATA[最近一次升级Archlinux，PHP升级到了5.3，遇到了两个问题： 1.Arch里面PHP更换了打包的方式，PHP的Aapche模块被独立封装为php-apache模块，所以安装了php包之后还要安装 php-apache包（如果你用Apache作为你的Web server ^^ ）。 2.另外就是Cakephp1.2跟PHP5.3的兼容性问题了。安装PHP5.3之后，运行Cakephp应用遇到了错误： 一个是提示strtotime()出错，最终修改php.ini的 date.timezone 解决，改为： date.timezone = Asia/Chongqing 时区的列表可以到这里查看：http://us.php.net/manual/pt_BR/timezones.php 另外就是报类似以下的错误： Deprecated: Assigning the return value of new by reference is deprecated… 这个有两种解决方法，一是将Cakephp升级到最新的Cakephp1.3dev版本，但是现在1.3版本并不是稳定版本，如果想继续使用1.2 版本的话，需要: 1.修改cake运行库下面cake/console/cake.php文件。 将141行的 141 142 143 144 145 function __initConstants&#40;&#41; &#123; if &#40;function_exists&#40;'ini_set'&#41;&#41; &#123; ini_set&#40;'display_errors', '1'&#41;; ini_set&#40;'error_reporting', E_ALL&#41;; ... 改为： 141 142 143 144 145 146 147 148 [...]]]></description>
			<content:encoded><![CDATA[<p>最近一次升级Archlinux，PHP升级到了5.3，遇到了两个问题：</p>
<p>1.Arch里面PHP更换了打包的方式，PHP的Aapche模块被独立封装为php-apache模块，所以安装了php包之后还要安装 php-apache包（如果你用Apache作为你的Web server ^^ ）。</p>
<p>2.另外就是Cakephp1.2跟PHP5.3的兼容性问题了。安装PHP5.3之后，运行Cakephp应用遇到了错误：</p>
<p>一个是提示strtotime()出错，最终修改php.ini的 <strong>date.timezone </strong>解决，改为：<strong> </strong></p>
<pre>date.timezone = Asia/Chongqing</pre>
<p>时区的列表可以到这里查看：<a href="http://us.php.net/manual/pt_BR/timezones.php" target="_blank">http://us.php.net/manual/pt_BR/timezones.php</a></p>
<p>另外就是报类似以下的错误：</p>
<p>Deprecated: Assigning the return value of  new by reference is deprecated…</p>
<p>这个有两种解决方法，一是将Cakephp升级到最新的Cakephp1.3dev版本，但是现在1.3版本并不是稳定版本，如果想继续使用1.2 版本的话，需要:</p>
<p>1.修改cake运行库下面cake/console/cake.php文件。</p>
<p>将141行的</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>141
142
143
144
145
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> __initConstants<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ini_set'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'display_errors'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_reporting'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">...</span></pre></td></tr></table></div>

<p>改为：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>141
142
143
144
145
146
147
148
149
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> __initConstants<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ini_set'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'display_errors'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'E_DEPRECATED'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_reporting'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> ~E_DEPRECATED<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_reporting'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
<span style="color: #339933;">...</span></pre></td></tr></table></div>

<p>2.修改cake/libs/configure.php<br />
将292行的</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>292
293
294
295
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'debug'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>debug<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #990000;">error_reporting</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">......</span></pre></td></tr></table></div>

<p>修改为：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>292
293
294
295
296
297
298
299
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'debug'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>debug<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'E_DEPRECATED'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_reporting'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">E_ALL</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span> ~E_DEPRECATED<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_reporting'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">E_ALL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #339933;">......</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2009/09/30/cakephp-with-php5-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>编程语言学习心得 – 让代码只做应该做的事情</title>
		<link>http://codepy.net/2009/09/30/computer-language-experience.html</link>
		<comments>http://codepy.net/2009/09/30/computer-language-experience.html#comments</comments>
		<pubDate>Wed, 30 Sep 2009 12:43:38 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[编程语言]]></category>
		<category><![CDATA[编程随想]]></category>
		<category><![CDATA[experience]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[thinking]]></category>

		<guid isPermaLink="false">http://codepy.net/?p=158</guid>
		<description><![CDATA[平台进入了整合阶段，开始看之前做前端的同志们的成果，发现了不少问题，其中最严重的问题莫过于标签的滥用了。比如下面的标签滥用： &#60;h3&#62;&#60;label&#62;XXX&#60;/label&#62;&#60;/h3&#62; 而事实上我们完全可以用 &#60;h3&#62;XXX&#60;/h3&#62; 就可以达到目的。 看似很简单的一句，两种方法达到的效果是一样的，但是显然第二种根据有可读性，也更符合HTML这种标记性语言的定义，在Wkipedia中，对于 HTML的描述是这样的： 超文本置标语言（英文：HyperText Markup Language，简称为HTML）是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。HTML被用来结构化信息——例如标题、段落 和列表等等，也可用来在一定程度上描述文档的外观和语义。 我们编写代码，达到预定的功能是远远不够的，写出既达到预定功能，又遵循该语言的特性，规范，可读性高，优雅的代码才是最终目标。特别是多人合作进 行项目开发的时候，显得尤为重要。 什么才算是可读性高，优雅的代码。命名规范，代码规范，这一些在《代码大全》的第11章“变量名的力量”中有很详细的探讨。林锐博士的《高质量 C++/C编程指南》也是应该好好阅读的。 另外一个我觉得很重要的就是要写出符合语言特性的代码，最简单的例子，把C当成面向对象的语言来对待，去构造一堆结构来满足自己“OO”的欲望，这 是编程的大忌！ 根据语言的特性，以及类库是否能够满足我们要完成的功能目标来选择语言，而不是用语言来束缚自己，最终画地为牢，限制了自己的发展而已。譬如要用到 面向对象的方法来设计，那么完全可以选择C++或者Java，完全没有必要抱着C的大腿不放，刻意用C去模拟面向对象方法，或许最终可以到达预想的功能， 但是之间付出的代价却是比选择一门面向对象语言要多得多。]]></description>
			<content:encoded><![CDATA[<p>平台进入了整合阶段，开始看之前做前端的同志们的成果，发现了不少问题，其中最严重的问题莫过于标签的滥用了。比如下面的标签滥用：</p>
<div>
<div>
<pre>&lt;h3&gt;&lt;label&gt;XXX&lt;/label&gt;&lt;/h3&gt;</pre>
</div>
</div>
<p>而事实上我们完全可以用</p>
<div>
<div>
<pre>&lt;h3&gt;XXX&lt;/h3&gt;</pre>
</div>
</div>
<p>就可以达到目的。</p>
<p>看似很简单的一句，两种方法达到的效果是一样的，但是显然第二种根据有可读性，也更符合HTML这种标记性语言的定义，在Wkipedia中，对于 HTML的描述是这样的：</p>
<blockquote><p>超文本置标语言（英文：HyperText Markup  Language，简称为HTML）是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。HTML被用来结构化信息——例如标题、段落 和列表等等，也可用来在一定程度上描述文档的外观和语义。</p></blockquote>
<p>我们编写代码，达到预定的功能是远远不够的，写出既达到预定功能，又遵循该语言的特性，规范，可读性高，优雅的代码才是最终目标。特别是多人合作进 行项目开发的时候，显得尤为重要。</p>
<p>什么才算是可读性高，优雅的代码。命名规范，代码规范，这一些在《代码大全》的第11章“变量名的力量”中有很详细的探讨。林锐博士的《<a href="../man.chinaunix.net/develop/c&amp;c++/c/c.htm" target="_blank">高质量 C++/C编程指南</a>》也是应该好好阅读的。</p>
<p>另外一个我觉得很重要的就是要写出符合语言特性的代码，最简单的例子，把C当成面向对象的语言来对待，去构造一堆结构来满足自己“OO”的欲望，这 是编程的大忌！</p>
<p>根据语言的特性，以及类库是否能够满足我们要完成的功能目标来选择语言，而不是用语言来束缚自己，最终画地为牢，限制了自己的发展而已。譬如要用到 面向对象的方法来设计，那么完全可以选择C++或者Java，完全没有必要抱着C的大腿不放，刻意用C去模拟面向对象方法，或许最终可以到达预想的功能， 但是之间付出的代价却是比选择一门面向对象语言要多得多。</p>
]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2009/09/30/computer-language-experience.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python 中的编码小结</title>
		<link>http://codepy.net/2009/04/04/python.html</link>
		<comments>http://codepy.net/2009/04/04/python.html#comments</comments>
		<pubDate>Sat, 04 Apr 2009 07:55:16 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[编程语言]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://codepy.net/?p=108</guid>
		<description><![CDATA[这几天在写一个爬虫，抓取指定网站的某些内容，中文网站的编码大概有两种：GB2312和UTF8。这里顺便就把写Python中要注意的一些内容汇聚一下，作为笔记。 1.文件头声明 对于python文件中包含中文的，应该在该文件头进行声明，加入： 1 # -*- coding: utf-8 -*- 一般的python文件头我都是用这一个模板： 1 2 3 4 5 #!/usr/bin/env python # -*- coding: utf-8 -*- &#160; &#34;&#34;&#34;docstring &#34;&#34;&#34; 我使用VIM作为编辑器，希望每次创建python文件时都按照上面的模板创建，于是在~/.vim目录下面建了一个templates目录，用来存放模板文件，把上面那个目标拷贝保存为python.tpl，存放在之前创建好的~/.vim目录下。然后在~/.vimrc中添加： 1 autocmd BufNewFile *.py 0r ~/.vim/templates/python.tpl 这样就能保证每次写的python文件能够保持一致的编码方式。更多用vim写python可以参考之前的《 在vim中编写python 》这篇文章。 2.python中的两种字符串 事实上，python是有两种&#8221;字符串&#8221;，在python2.6的官方文档中，有Strings 和Unicode Strings 两种Strings。 对于它们之间的相互转换以及GB2312与UTF8的互转，还有encode和decode，在啄木鸟的WIKI上面有详细的解释： http://wiki.woodpecker.org.cn/moin/PyEnCode 简单的说，其实encode1就是将unicode的字符串转换为特定编码，诸如“GB2312,UTF8”之类。 而decode2就是将本地编码转换为unicode编码的字符串。 所以，比如说要将GB2312转换为UTF8，那么就先将GB2312 decode再encode成UTF8即可，反之亦然。 编码解码]]></description>
			<content:encoded><![CDATA[<p>这几天在写一个爬虫，抓取指定网站的某些内容，中文网站的编码大概有两种：GB2312和UTF8。这里顺便就把写Python中要注意的一些内容汇聚一下，作为笔记。</p>
<p><strong>1.文件头声明</strong></p>
<p>对于python文件中包含中文的，应该在该文件头进行声明，加入：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span></pre></td></tr></table></div>

<p>一般的python文件头我都是用这一个模板：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot;docstring
&quot;&quot;&quot;</span></pre></td></tr></table></div>

<p>我使用VIM作为编辑器，希望每次创建python文件时都按照上面的模板创建，于是在~/.vim目录下面建了一个templates目录，用来存放模板文件，把上面那个目标拷贝保存为python.tpl，存放在之前创建好的~/.vim目录下。然后在~/.vimrc中添加：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">autocmd BufNewFile <span style="color: #000000; font-weight: bold;">*</span>.py 0r ~<span style="color: #000000; font-weight: bold;">/</span>.vim<span style="color: #000000; font-weight: bold;">/</span>templates<span style="color: #000000; font-weight: bold;">/</span>python.tpl</pre></td></tr></table></div>

<p>这样就能保证每次写的python文件能够保持一致的编码方式。更多用vim写python可以参考之前的《 <a class="title" rel="bookmark" href="../2009/02/08/code-python-in-vim.html">在vim中编写python</a><span class="title"> 》这篇文章。</span></p>
<p><strong><span class="title">2.python中的两种字符串</span></strong></p>
<p><span class="title">事实上，python是有两种&#8221;字符串&#8221;，在python2.6的官方文档中，有</span><a href="http://docs.python.org/tutorial/introduction.html#strings" target="_blank">Strings</a> 和<a href="http://docs.python.org/tutorial/introduction.html#unicode-strings" target="_blank">Unicode Strings</a> 两种Strings。</p>
<p>对于它们之间的相互转换以及GB2312与UTF8的互转，还有encode和decode，在啄木鸟的WIKI上面有详细的解释：</p>
<blockquote><p><a href="http://wiki.woodpecker.org.cn/moin/PyEnCode">http://wiki.woodpecker.org.cn/moin/PyEnCode</a></p>
</blockquote>
<p>简单的说，其实encode<sup><a href="http://codepy.net/2009/04/04/python.html#footnote_0_108" id="identifier_0_108" class="footnote-link footnote-identifier-link" title="编码">1</a></sup>就是将unicode的字符串转换为特定编码，诸如“GB2312,UTF8”之类。<br />
而decode<sup><a href="http://codepy.net/2009/04/04/python.html#footnote_1_108" id="identifier_1_108" class="footnote-link footnote-identifier-link" title="解码">2</a></sup>就是将本地编码转换为unicode编码的字符串。<br />
所以，比如说要将GB2312转换为UTF8，那么就先将GB2312 decode再encode成UTF8即可，反之亦然。</p>
<ol class="footnotes"><li id="footnote_0_108" class="footnote">编码</li><li id="footnote_1_108" class="footnote">解码</li></ol>]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2009/04/04/python.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python 3.0发布</title>
		<link>http://codepy.net/2008/12/04/python-3-release.html</link>
		<comments>http://codepy.net/2008/12/04/python-3-release.html#comments</comments>
		<pubDate>Thu, 04 Dec 2008 15:06:01 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[编程语言]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://codepy.net/?p=74</guid>
		<description><![CDATA[具有重大意义的Python 3.0(也叫Python 3000或Py3k)已正式发布。Python 3.0是首个有意不向后兼容的版本，经历了约3年的开发，相比前版有巨大的变化。 主要新特性包括：部分函数和语句的改变，其中最引人注目的是print声明被print()函数取代；字符串和字节变动，str类表示一个 Unicode 字符串，代替了早期版本的unicode类。更多可见发行注解。]]></description>
			<content:encoded><![CDATA[<p>具有重大意义的<a href="http://docs.python.org/dev/3.0/whatsnew/3.0.html">Python 3.0</a>(也叫Python 3000或Py3k)已正式发布。Python 3.0是首个有意不向后兼容的版本，经历了约3年的开发，相比前版有巨大的变化。<em> 主要新特性<a href="http://zh.wikipedia.org/w/index.php?title=Python&amp;variant=zh-cn#Python_3.0">包括</a>：部分函数和语句的改变，其中最引人注目的是print声明被print()函数取代；字符串和字节变动，str类表示一个 Unicode 字符串，代替了早期版本的unicode类。更多可见发行注解。</em></p>
]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2008/12/04/python-3-release.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>转：匈牙利命名法</title>
		<link>http://codepy.net/2008/09/26/hungarian-notation.html</link>
		<comments>http://codepy.net/2008/09/26/hungarian-notation.html#comments</comments>
		<pubDate>Fri, 26 Sep 2008 11:25:57 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[编程语言]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[匈牙利命名法]]></category>

		<guid isPermaLink="false">http://codepy.net/?p=59</guid>
		<description><![CDATA[http://blog.csdn.net/DavidHsing/archive/2007/08/26/1759491.aspx 命名规范和C/C++源代码书写 通则： 1、在所有命名中，都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写，除非该名字描述的是中文特有的内容，如半角、全角, 声母、韵母等。 2、所有命名都应遵循达意原则，即名称应含义清晰、明确。 3、所有命名都不易过长，应控制在规定的最大长度以内。 4、所有命名都应尽量使用全称。 5、如果命名使用缩写，则应该使用《通用缩写表》（见附录）中的缩写；原则上不推荐使用《通用缩写表》以外的缩写，如果使用，则必须对其进行注释和说明。 具体规范： 1、工程名： 不强制统一。 2、文件名： ·基于工程名，开头3个字母应表明与哪一个工程相关。 ·后面的字母应能够区别不同的功能。 ·不区分大小写。 ·长度不限于8.3格式，建议不多于30个字符。 ·若文件用于定义和实现类，建议文件名与类名保持一致。 3、函数名： ·参照 Windows API 的命名规范。 ·推荐使用动宾结构。函数名应清晰反映函数的功能、用途。 ·函数名最长不得超过30个字符。 ·函数名第一个字母必须大写。 ·全局函数必须以小写前缀&#8221;g&#8221;开头。 4、变量名： 原则上，变量名的命名遵从匈牙利记法。即：前缀 + 类型 + 变量名 1）格式： &#91;m_&#124;s_&#124;g_&#93; type &#91;class name&#124;struct name&#93; variable name 2）解释： ·m_ ： 类的成员变量 &#160; ·ms_：类的静态成员变量 &#160; ·s_ ：静态全局变量 &#160; ·g_ ：普通全局变量 &#160; ·类型缩写（type） &#160; ·char, TCHAR： ch &#160; ·char&#91;&#93;，TCHAR&#91;&#93;： sz &#160; ·bool, BOOL： b &#160; ·int, __int16,__int32,__int64： n &#160; ·long： l &#160; ·double： d &#160; ·float： ft &#160; ·BYTE： by &#160; ·WORD： w [...]]]></description>
			<content:encoded><![CDATA[<p>http://blog.csdn.net/DavidHsing/archive/2007/08/26/1759491.aspx</p>
<p>命名规范和C/C++源代码书写</p>
<p>通则：</p>
<p>1、在所有命名中，都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写，除非该名字描述的是中文特有的内容，如半角、全角, 声母、韵母等。</p>
<p>2、所有命名都应遵循达意原则，即名称应含义清晰、明确。</p>
<p>3、所有命名都不易过长，应控制在规定的最大长度以内。</p>
<p>4、所有命名都应尽量使用全称。</p>
<p>5、如果命名使用缩写，则应该使用《通用缩写表》（见附录）中的缩写；原则上不推荐使用《通用缩写表》以外的缩写，如果使用，则必须对其进行注释和说明。</p>
<p>具体规范：</p>
<p>1、工程名：</p>
<p>不强制统一。</p>
<p>2、文件名：</p>
<p>·基于工程名，开头3个字母应表明与哪一个工程相关。</p>
<p>·后面的字母应能够区别不同的功能。</p>
<p>·不区分大小写。</p>
<p>·长度不限于8.3格式，建议不多于30个字符。</p>
<p>·若文件用于定义和实现类，建议文件名与类名保持一致。</p>
<p>3、函数名：</p>
<p>·参照 Windows API 的命名规范。</p>
<p>·推荐使用动宾结构。函数名应清晰反映函数的功能、用途。</p>
<p>·函数名最长不得超过30个字符。</p>
<p>·函数名第一个字母必须大写。</p>
<p>·全局函数必须以小写前缀&#8221;g&#8221;开头。</p>
<p>4、变量名：</p>
<p>原则上，变量名的命名遵从匈牙利记法。即：前缀 + 类型 + 变量名<br />
<span id="more-59"></span><br />
1）格式：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #008000;">&#91;</span>m_<span style="color: #000040;">|</span>s_<span style="color: #000040;">|</span>g_<span style="color: #008000;">&#93;</span> type <span style="color: #008000;">&#91;</span><span style="color: #0000ff;">class</span> name<span style="color: #000040;">|</span><span style="color: #0000ff;">struct</span> name<span style="color: #008000;">&#93;</span> variable name</pre></div></div>

<p>2）解释：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">·m_ ： 类的成员变量
&nbsp;
·ms_：类的静态成员变量
&nbsp;
·s_ ：静态全局变量
&nbsp;
·g_ ：普通全局变量
&nbsp;
·类型缩写（type）
&nbsp;
·<span style="color: #0000ff;">char</span>, TCHAR： ch
&nbsp;
·<span style="color: #0000ff;">char</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>，TCHAR<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>： sz
&nbsp;
·<span style="color: #0000ff;">bool</span>, BOOL： b
&nbsp;
·<span style="color: #0000ff;">int</span>, __int16,__int32,__int64： n
&nbsp;
·<span style="color: #0000ff;">long</span>： l
&nbsp;
·<span style="color: #0000ff;">double</span>： d
&nbsp;
·<span style="color: #0000ff;">float</span>： ft
&nbsp;
·BYTE： by
&nbsp;
·WORD： w
&nbsp;
·DWORD： dw
&nbsp;
·<span style="color: #0000ff;">unsigned</span>： u
&nbsp;
·function： fn
&nbsp;
·p ：pointer
&nbsp;
·lp ：pointer</pre></div></div>

<p>变量名最长不得超过20个字符。</p>
<p>5、类名：</p>
<p>·必须以大写&#8221;K&#8221;开头，后面字母反映具体含义，以清晰表达类的用途和功能为原则。</p>
<p>·接口必须以大写&#8221;I&#8221;开头，代表 Interface 。</p>
<p>·当名称由多个单词构成时，每一个单词的第一个字母必须大写。</p>
<p>6、结构名、宏名、枚举名、联合名：</p>
<p>·全部大写。</p>
<p>·枚举名加小写前缀&#8221;enum&#8221;。</p>
<p>例：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">enum</span> _KFILE_OPEN_MODE
&nbsp;
<span style="color: #008000;">&#123;</span>
&nbsp;
enumOPEN_READONLY <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span>,
&nbsp;
enumOPEN_READWRITE <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span>,
&nbsp;
enumCREATE_ALWAY <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span>
&nbsp;
<span style="color: #008000;">&#125;</span> KFILE_OPEN_MODE<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">//·宏名加小写前缀&quot;def&quot;。</span></pre></div></div>

<p>例：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#define defMAXNUMBER 100</span></pre></div></div>

<p>·结构名加小写前缀&#8221;tag&#8221;，之后必须以大写&#8221;K&#8221;开头。</p>
<p>例：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">struct</span> tagKPOINT
&nbsp;
<span style="color: #008000;">&#123;</span>
&nbsp;
<span style="color: #0000ff;">int</span> x<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> y<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span> KPOINT<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">//·联合名加小写前缀&quot;uni&quot;。</span></pre></div></div>

<p>例：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">union</span> _VARIANT<span style="color: #008000;">&#123;</span>
&nbsp;
<span style="color: #0000ff;">char</span> unichVal<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span> uninVal<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">long</span> unilVal<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">float</span> uniftVal<span style="color: #008080;">;</span>
&nbsp;
...
&nbsp;
<span style="color: #008000;">&#125;</span> VARIANT<span style="color: #008080;">;</span></pre></div></div>

<p>C/C++源代码书写规范（试行）</p>
<p>1. 在.h/.cpp的开头应有一段格式统一的说明，内容包括：</p>
<p>a. 文件名 (FileName)；</p>
<p>b. 创建人 (Creater)；</p>
<p>c. 文件创建时间 (Date)；</p>
<p>d. 简短说明文件功能、用途 (Comment)。</p>
<p>2. 除非极其简单，否则对函数应有注释说明。内容包括：功能、入口/出口参数，必要时还可有备注或补充说明。</p>
<p>3. 每行代码的长度推荐为80列，最长不得超过120列；折行以对齐为准。</p>
<p>例：HANDLE KSOpenFile(const char cszFileName[],</p>
<p>int nMode);</p>
<p>或者：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">BOOL KSReadFile<span style="color: #008000;">&#40;</span>
&nbsp;
HANDLE hFile,
&nbsp;
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span>pvBuffer,
&nbsp;
<span style="color: #0000ff;">int</span> nReadSize,
&nbsp;
<span style="color: #0000ff;">int</span> <span style="color: #000040;">*</span>pnReadSize
&nbsp;
<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>4. 循环、分支代码，判断条件与执行代码不得在同一行上。</p>
<p>例：正确：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">else</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span></pre></div></div>

<p>不得写做：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">else</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span></pre></div></div>

<p>5. 指针的定义，* 号既可以紧接类型，也可以在变量名之前。</p>
<p>例：可写做：int* pnsize;</p>
<p>也可写做：int *pnsize;</p>
<p>但不得写做：int * pnsize;</p>
<p>6. 在类的成员函数内调用非成员函数时，在非成员函数名前必须加上“::”。</p>
<p>7. 函数入口参数有缺省值时，应注释说明。</p>
<p>例:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">BOOL KSSaveToFile<span style="color: #008000;">&#40;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> cszFileName<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
&nbsp;
BOOL bCanReplace <span style="color: #ff0000; font-style: italic;">/* = TRUE */</span>
&nbsp;
<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>或者：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">BOOL KSSaveToFile<span style="color: #008000;">&#40;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> cszFileName<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
&nbsp;
BOOL bCanReplace <span style="color: #666666;">// = TRUE</span>
&nbsp;
<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>8. else if 必须写在一行。</p>
<p>9. 与‘{’、‘}’有关的各项规定：</p>
<p>9.1‘{’、‘}’应独占一行。在该行内可有注释。</p>
<p>例：正确：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> cbLine<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> <span style="color: #666666;">// .....</span>
&nbsp;
<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Line %d:&quot;</span>, i<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, pFileLines<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>不得写做：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> cb<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> <span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;Line %d:&quot;</span>, i<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, pFileLines<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>9.2‘{’必须另起一行，‘{’之后的代码必须缩进一个Tab。‘{’与‘}’必须在同一列上。</p>
<p>例：正确：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span>
&nbsp;
m <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
n<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>不得写做：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
&nbsp;
m <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
n<span style="color: #000040;">++</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>例外：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">==</span> <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> ASSERT<span style="color: #008000;">&#40;</span>FALSE<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span></pre></div></div>

<p>9.3 在循环、分支之后若只有一行代码，虽然可省略‘{’、‘}’，但不推荐这么做。若省略后可能引起歧义，则必须加上‘{’、‘}’。</p>
<p>例：正确：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">else</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span></pre></div></div>

<p>或者：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000040;">!</span><span style="color: #000080;">=</span> nTemp<span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">else</span>
&nbsp;
<span style="color: #008000;">&#123;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span></pre></div></div>

<p>不得写做：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#41;</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>n <span style="color: #000040;">!</span><span style="color: #000080;">=</span> nTemp<span style="color: #008000;">&#41;</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">else</span>
&nbsp;
n <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span></pre></div></div>

<p>不推荐：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">else</span>
&nbsp;
<span style="color: #008000;">&#123;</span>
&nbsp;
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">==</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">else</span>
&nbsp;
<span style="color: #008000;">&#123;</span>
&nbsp;
<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000040;">&amp;</span>gt<span style="color: #008080;">;</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>10. 与空格有关的各项规定。</p>
<p>10.1 在所有两目、三目运算符的两边都必须有空格。在单目运算符两端不必空格。但在‘-&gt;’、‘::’、‘.’、‘[’、‘]’等运算符前后，及‘&amp;’（取地址）、‘*’（取值）等运算符之后不得有空格。</p>
<p>例：正确：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> n <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span>, nTemp<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> nMinLine<span style="color: #008080;">;</span> i <span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span> nMaxLine<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span></pre></div></div>

<p>不得写做：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> n<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span>, nTemp<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">int</span> i<span style="color: #000080;">=</span>nMinLine<span style="color: #008080;">;</span> i<span style="color: #000040;">&amp;</span>lt<span style="color: #008080;">;</span><span style="color: #000080;">=</span>nMaxLine<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span> <span style="color: #008000;">&#41;</span></pre></div></div>

<p>10.2 for、while、if 等关键词之后应有1个空格，再接‘(’，之后无空格；在结尾的‘)’前不得有空格。</p>
<p>例：正确：</p>
<p>if (-2 == n)</p>
<p>不得写做：</p>
<p>if(-2 == n)</p>
<p>或</p>
<p>if ( -2 == n )</p>
<p>等等。</p>
<p>10.3 调用函数、宏时，‘(’、‘)’前后不得有空格。</p>
<p>例：正确：</p>
<p>printf(&#8220;%d\n&#8221;, nIndex);</p>
<p>不得写做：</p>
<p>printf (&#8220;%d\n&#8221;, nIndex);</p>
<p>printf( &#8221;%d\n&#8221;, nIndex );</p>
<p>等等。</p>
<p>10.4 类型强制转换时，‘(’‘)’前后不得有空格</p>
<p>例：可写做：</p>
<p>(KSFile*)pFile;</p>
<p>也可写做：</p>
<p>(KSFile *)pFile</p>
<p>不得写做：</p>
<p>( KSFile* )pFile</p>
<p>( KSFile * ) pFile</p>
<p>11. 与缩进有关的各项规定</p>
<p>11.1 缩进以 Tab 为单位。1 个 Tab 为 4 个空格</p>
<p>11.2 下列情况，代码缩进一个 Tab:</p>
<p>1. 函数体相对函数名及‘{’、‘}’。</p>
<p>例：</p>
<p>int Power(int x)</p>
<p>{</p>
<p>return (x * x);</p>
<p>}</p>
<p>2. if、else、for、while、do 等之后的代码。</p>
<p>3. 一行之内写不下，折行之后的代码，应在合理的位置进行折行。若有 + - * / 等运算符，则运算符应在上一行末尾，而不应在下一行的行首。</p>
<p>11.3 下列情况，不必缩进：switch 之后的 case、default。</p>
<p>例：</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">switch</span> <span style="color: #008000;">&#40;</span>nID<span style="color: #008000;">&#41;</span>
&nbsp;
<span style="color: #008000;">&#123;</span>
&nbsp;
<span style="color: #0000ff;">case</span> ID_PLAY<span style="color: #008080;">:</span>
&nbsp;
......
&nbsp;
<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">case</span> ID_STOP<span style="color: #008080;">:</span>
&nbsp;
......
&nbsp;
<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">default</span><span style="color: #008080;">:</span>
&nbsp;
......
&nbsp;
<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #008000;">&#125;</span></pre></div></div>

<p style="text-align: center;"><span style="font-family: 宋体;"><strong></strong></span></p>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>匈牙利命名法</strong><br />
<strong>MFC、句柄、控件及结构的命名规范</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 151px;"></col>
<col style="width: 117px;"></col>
<col style="width: 143px;"></col>
<col style="width: 156px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>Windows类型</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>样本变量</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>MFC类</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>样本变量</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hWnd；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CWnd*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pWnd；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HDLG</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hDlg；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CDialog*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pDlg；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HDC</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hDC；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CDC*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pDC；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HGDIOBJ</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hGdiObj；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CGdiObject*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pGdiObj；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HPEN</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hPen；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CPen*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pPen；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HBRUSH</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hBrush；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CBrush*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pBrush；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HFONT </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hFont； </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CFont*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pFont；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HBITMAP </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hBitmap；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CBitmap*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pBitmap；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HPALETTE </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hPaltte；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CPalette*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pPalette；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HRGN </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hRgn；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CRgn*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pRgn；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HMENU </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hMenu；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CMenu*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pMenu；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hCtl；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CState* </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pState；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hCtl；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CButton*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pButton；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hCtl；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CEdit*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pEdit；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hCtl；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CListBox*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pListBox；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hCtl；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CComboBox*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pComboBox；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HWND </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hCtl；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CScrollBar*</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pScrollBar；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HSZ </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hszStr；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CString </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pStr；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>POINT </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pt；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CPoint </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pt；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>SIZE </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">size；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CSize </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">size；</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>RECT </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">rect；</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CRect </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">rect；</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>一般前缀命名规范</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 74px;"></col>
<col style="width: 139px;"></col>
<col style="width: 355px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>前缀</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>类型</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>实例</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>C</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">类或结构</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">CDocument，CPrintInfo</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>m_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">成员变量</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">m_pDoc，</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>变量命名规范 </strong></span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 41px;"></col>
<col style="width: 75px;"></col>
<col style="width: 374px;"></col>
<col style="width: 76px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>前缀</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>类型</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>描述</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>实例</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>ch</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">char</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">8位字符</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">chGrade</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>ch </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">TCHAR</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">如果<strong>_UNICODE</strong>定义，则为16位字符</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">chName</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>b</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">BOOL</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">布尔值</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">bEnable</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>n </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">int</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">整型（其大小依赖于操作系统）</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">nLength</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>n </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">UINT </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">无符号值（其大小依赖于操作系统）</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">nHeight</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>w </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">WORD </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">16位无符号值</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">wPos</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>l </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">LONG </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">32位有符号整型</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">lOffset</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>dw </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">DWORD </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">32位无符号整型 </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">dwRange</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>p </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">* </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">指针</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">pDoc</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>lp </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">FAR* </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">远指针 </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">lpszName</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>lpsz </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">LPSTR </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">32位字符串指针</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">lpszName</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>lpsz </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">LPCSTR </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">32位常量字符串指针</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">lpszName</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>lpsz </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">LPCTSTR </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">如果<strong>_UNICODE</strong>定义，则为32位常量字符串指针</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">lpszName</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>h </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">handle </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">Windows对象句柄</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">hWnd</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>lpfn </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">callback</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">指向<strong>CALLBACK</strong>函数的远指针 </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">?</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>应用程序符号命名规范</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 47px;"></col>
<col style="width: 220px;"></col>
<col style="width: 162px;"></col>
<col style="width: 138px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>前缀</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>符号类型</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>实例</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>范围</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDR_ </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">不同类型的多个资源共享标识</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDR_MAIINFRAME</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">1～0x6FFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDD_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">对话框资源</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDD_SPELL_CHECK </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">1～0x6FFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HIDD_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">对话框资源的Help上下文</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">HIDD_SPELL_CHECK </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">0&#215;20001～0x26FF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDB_ </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">位图资源</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDB_COMPANY_LOGO </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">1～0x6FFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDC_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">光标资源</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDC_PENCIL </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">1～0x6FFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDI_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">图标资源</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDI_NOTEPAD </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">1～0x6FFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>ID_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">来自菜单项或工具栏的命令</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">ID_TOOLS_SPELLING </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">0&#215;8000～0xDFFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HID_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">命令Help上下文</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">HID_TOOLS_SPELLING </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">0&#215;18000～0x1DFFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDP_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">消息框提示</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDP_INVALID_PARTNO </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">8～0xDEEF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>HIDP_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">消息框Help上下文</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">HIDP_INVALID_PARTNO </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">0&#215;30008～0x3DEFF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDS_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">串资源</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDS_COPYRIGHT </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">1～0x7EEF</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>IDC_</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">对话框内的控件</span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">IDC_RECALC </span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">8～0xDEEF</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>?</strong><span style="font-size: 12pt;"> </span></span></p>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>Microsoft MFC宏命名规范</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 78px;"></col>
<col style="width: 444px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>名称</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>类型</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>_AFXDLL</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">唯一的动态连接库（Dynamic Link Library，DLL）版本</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>_ALPHA</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">仅编译DEC Alpha处理器</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>_DEBUG</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">包括诊断的调试版本</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>_MBCS</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">编译多字节字符集</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>_UNICODE</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">在一个应用程序中打开Unicode</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>AFXAPI </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">MFC提供的函数</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CALLBACK</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">通过指针回调的函数 </span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>库标识符命名法</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 72px;"></col>
<col style="width: 449px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>标识符</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>值和含义</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>u </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">ANSI（N）或Unicode（U）</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>d </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">调试或发行：D = 调试；忽略标识符为发行。</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>静态库版本命名规范</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 111px;"></col>
<col style="width: 407px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>库</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>描述</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>NAFXCWD.LIB</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">调试版本：MFC静态连接库</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>NAFXCW.LIB</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">发行版本：MFC静态连接库</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>UAFXCWD.LIB</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">调试版本：具有Unicode支持的MFC静态连接库</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>UAFXCW.LIB</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">发行版本：具有Unicode支持的MFC静态连接库</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>动态连接库命名规范</strong> </span></p>
<div style="text-align: center;">
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 111px;"></col>
<col style="width: 407px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>名称</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>类型</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>_AFXDLL</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">唯一的动态连接库（DLL）版本</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>WINAPI </strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">Windows所提供的函数</span></td>
</tr>
</tbody>
</table>
</div>
<p style="text-align: center;"><span style="font-family: 宋体;"><strong>Windows.h中新的命名规范</strong> </span></p>
<table style="border-collapse: collapse;" border="0">
<colgroup>
<col style="width: 70px;"></col>
<col style="width: 512px;"></col>
</colgroup>
<tbody>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>类型</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>定义描述</strong></span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>WINAPI</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">使用在API声明中的FAR PASCAL位置，如果正在编写一个具有导出API人口点的DLL，则可以在自己的API中使用该类型</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>CALLBACK</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">使用在应用程序回叫例程，如窗口和对话框过程中的FAR PASCAL的位置</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>LPCSTR</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">与LPSTR相同，只是LPCSTR用于只读串指针，其定义类似（const char FAR*）</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>UINT</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">可移植的无符号整型类型，其大小由主机环境决定（对于Windows NT和Windows 9x为32位）；它是unsigned int的同义词</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>LRESULT</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">窗口程序返回值的类型</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>LPARAM</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">声明lParam所使用的类型，lParam是窗口程序的第四个参数</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>WPARAM</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">声明wParam所使用的类型，wParam是窗口程序的第三个参数</span></td>
</tr>
<tr>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;"><strong>LPVOID</strong></span></td>
<td style="border-style: none; padding: 1px;" valign="middle"><span style="font-size: 12pt; font-family: 宋体;">一般指针类型，与（void *）相同，可以用来代替</span></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2008/09/26/hungarian-notation.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP和MySQL Web开发（原书第三版）中文版 PDF</title>
		<link>http://codepy.net/2007/12/07/php-mysql-web-development-chinese-version-pdf.html</link>
		<comments>http://codepy.net/2007/12/07/php-mysql-web-development-chinese-version-pdf.html#comments</comments>
		<pubDate>Fri, 07 Dec 2007 15:33:08 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[电子书]]></category>
		<category><![CDATA[编程语言]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://ruitao.host5.meyu.net/?p=22</guid>
		<description><![CDATA[学PHP&#38;MySQL必看的圣经，个人特别推崇，看看CSDN里面的介绍吧： 本书将PHP开发与MySQL应用相结合，分别对PHP和MySQL做了深入浅出的分析，不仅介绍PHP和MySQL的一般概念，而且对PHP和MySQL的Web应用做了较全面的阐述，并包括几个经典且实用的例子。 本书是第3版，经过了全面的更新、重写以及扩展，包括PHP5的最新特性——新的对象模型、更好的异常处理和SimpleXML；以及MySQL 5的新特性，例如存储过程和存储引擎。 PHP是PHP：Hypertext Preprocessor的缩写，一种被广泛应用的开源（Open Source）多用途脚本语言。它可嵌入到 HTML中，尤其适合Web开发。然而，PHP的功能并不局限于此。它可以作为服务器端脚本、命令行脚本甚至客户端GUI程序的开发语言。如今，PHP能够在所有的主流操作系统和大多数的Web服务器。PHP的易用性、高性能、与 Apache Web 服务器的紧密集成以及大量应用程序构建块使其成为领先的Web应用程序开发语言之一。 MySQL是一个非常快速、健壮的关系数据库管理系统（RDBMS）。它是一个能使你高效地保存、搜索、排序和检索数据的数据库。MySQL服务器可以控制你对数据的访问，从而确保只有经过身份认证的用户才能访问数据。因此，MySQL是一个多用户、多线程服务器，它使用为业界所支持的标准数据库查询语言 SQL（结构化查询语言）。自从1996年开始，MySQL就开始正式发布，但是其开发历史还必须追溯到1979年。如今，MySQL已经获得了《Linux Journal》杂志的读者选择奖。 由Laura Thomson和Luke Welling编著的这本《PHP and MySQL Web Development》（中文版：《PHP与MySQL Web开发指南》）已经出版了第三版。就像《Thinking in Java》是关于Java的圣经类图书，这本书就是使用PHP和MySQL进行面向数据库的Web应用开发宝典。 该书语言通俗易懂，结构合理清晰。采用了循序渐进的方式介绍如何使用PHP和MySQL进行面向数据库的Web应用开发：PHP语言、MySQL服务器、电子商务基础、安全问题以及实战示例。这对于希望从事PHP和MySQL Web开发的入门级程序员来说，是合理的学习曲线。 本书介绍的PHP为最新版本，5.0。它详细介绍了PHP的历史和现在，以及作为面向过程和面向对象语言的特点和功能，其中还包括了PHP 5语言新特性的介绍，例如面向对象的改进。这对于不熟悉面向对象语言的读者来说，是基本的入门知识。 本书介绍的MySQL也是最新版本，4.0。考虑到读者可能对数据库理论的不熟悉，本书还用了两章的内容详细介绍关系数据库基础知识和SQL语言。在介绍 MySQL时，作者也是按照由浅入深的学习曲线逐步展开的。首先是MySQL数据库的特性，然后是MySQL的高级应用，这些应用与现实世界的开发紧密相关，包括MySQL权限系统的深入介绍，MySQL安全性问题的全面解析，以及一些令开发人员头疼的性能优化问题。 在详细介绍PHP和MySQL之后，本书也就进入最有特点和最有价值的部分：实战篇。PHP和MySQL的结合，能产生什么样的应用？答案很明显，电子商务。在进入用PHP和MySQL进行电子商务网站开发之前，作者还详细介绍了电子商务网站的基本特性以及需要特别注意的安全问题。在本书的关于电子商务安全问题部分，读者可以学习几乎所有的网站安全概念和技巧。这对于经验还不够丰富的网站开发人员来说，是不可多得手册。在实战项目介绍中，作者凭借多年的开发经验，给出了几个最具有代表性的例子：购物车，内容管理系统，基于Web的邮件管理系统，邮件列表管理器，Web论坛等。所有这些例子都具有非常高的实用性。设想一下，一个经验不够丰富的开发人员加入到一家电子商务网站，开始新的职业生涯，当他一边工作，一边学习本书时，他会说什么呢？“天啊，怎么书上的内容就是我工作的内容呢！感谢上帝！”。 除了面向开发人员外，作者还考虑到了电子商务网站的系统管理员可能遇到的问题：系统环境的搭建和维护。在本书的附录部分，作者详细介绍了如何在主流的操作系统平台上安装、配置甚至自己编译PHP和MySQL。因为PHP和MySQL开放源码的缘故，企业可能会需要对这些工具和平台进行定制，而本书附录的内容，恰恰为系统管理员提供了这方面的帮助。 综观本书全篇，内容广泛，风格严谨，理论和实践紧密结合。既有详细的概念说明，又有复杂而完整的实例代码，读者能够轻松地将自己所学的理论知识付诸实践。正是由于这个原因，本书适用的读者群非常广发。对于初学者来说，本书可以作为他们的教材和参考书,9对于有丰富经验的PHP和MySQL高手，本书也是一本很好的参考手册，因此本书适用于各个层次的PHP程序员。 当然，本书也存在不一些不足的地方。笔者认为作者应该尝试在本书中加入一些关于PHP和MySQL协作开发与当今最流行的J2EE平台以及.NET平台的比较。这种比较内容将有助于企业和开发人员选择合适的平台和工具。或许，这些内容将在不远的第四版看到。 （上部份）下载地址 （下部分）下载地址]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.china-pub.com/ebook25001-30000/25384/zcover.jpg" alt="" width="154" height="200" /></p>
<p>学PHP&amp;MySQL必看的圣经，个人特别推崇，看看CSDN里面的介绍吧：</p>
<p>本书将PHP开发与MySQL应用相结合，分别对PHP和MySQL做了深入浅出的分析，不仅介绍PHP和MySQL的一般概念，而且对PHP和MySQL的Web应用做了较全面的阐述，并包括几个经典且实用的例子。   <span id="more-22"></span><br />
本书是第3版，经过了全面的更新、重写以及扩展，包括PHP5的最新特性——新的对象模型、更好的异常处理和SimpleXML；以及MySQL 5的新特性，例如存储过程和存储引擎。<br />
PHP是PHP：Hypertext Preprocessor的缩写，一种被广泛应用的开源（Open Source）多用途脚本语言。它可嵌入到 HTML中，尤其适合Web开发。然而，PHP的功能并不局限于此。它可以作为服务器端脚本、命令行脚本甚至客户端GUI程序的开发语言。如今，PHP能够在所有的主流操作系统和大多数的Web服务器。PHP的易用性、高性能、与 Apache Web 服务器的紧密集成以及大量应用程序构建块使其成为领先的Web应用程序开发语言之一。<br />
MySQL是一个非常快速、健壮的关系数据库管理系统（RDBMS）。它是一个能使你高效地保存、搜索、排序和检索数据的数据库。MySQL服务器可以控制你对数据的访问，从而确保只有经过身份认证的用户才能访问数据。因此，MySQL是一个多用户、多线程服务器，它使用为业界所支持的标准数据库查询语言 SQL（结构化查询语言）。自从1996年开始，MySQL就开始正式发布，但是其开发历史还必须追溯到1979年。如今，MySQL已经获得了《Linux Journal》杂志的读者选择奖。<br />
由Laura Thomson和Luke Welling编著的这本《PHP and MySQL Web Development》（中文版：《PHP与MySQL Web开发指南》）已经出版了第三版。就像《Thinking in Java》是关于Java的圣经类图书，这本书就是使用PHP和MySQL进行面向数据库的Web应用开发宝典。<br />
该书语言通俗易懂，结构合理清晰。采用了循序渐进的方式介绍如何使用PHP和MySQL进行面向数据库的Web应用开发：PHP语言、MySQL服务器、电子商务基础、安全问题以及实战示例。这对于希望从事PHP和MySQL Web开发的入门级程序员来说，是合理的学习曲线。<br />
本书介绍的PHP为最新版本，5.0。它详细介绍了PHP的历史和现在，以及作为面向过程和面向对象语言的特点和功能，其中还包括了PHP 5语言新特性的介绍，例如面向对象的改进。这对于不熟悉面向对象语言的读者来说，是基本的入门知识。<br />
本书介绍的MySQL也是最新版本，4.0。考虑到读者可能对数据库理论的不熟悉，本书还用了两章的内容详细介绍关系数据库基础知识和SQL语言。在介绍 MySQL时，作者也是按照由浅入深的学习曲线逐步展开的。首先是MySQL数据库的特性，然后是MySQL的高级应用，这些应用与现实世界的开发紧密相关，包括MySQL权限系统的深入介绍，MySQL安全性问题的全面解析，以及一些令开发人员头疼的性能优化问题。<br />
在详细介绍PHP和MySQL之后，本书也就进入最有特点和最有价值的部分：实战篇。PHP和MySQL的结合，能产生什么样的应用？答案很明显，电子商务。在进入用PHP和MySQL进行电子商务网站开发之前，作者还详细介绍了电子商务网站的基本特性以及需要特别注意的安全问题。在本书的关于电子商务安全问题部分，读者可以学习几乎所有的网站安全概念和技巧。这对于经验还不够丰富的网站开发人员来说，是不可多得手册。在实战项目介绍中，作者凭借多年的开发经验，给出了几个最具有代表性的例子：购物车，内容管理系统，基于Web的邮件管理系统，邮件列表管理器，Web论坛等。所有这些例子都具有非常高的实用性。设想一下，一个经验不够丰富的开发人员加入到一家电子商务网站，开始新的职业生涯，当他一边工作，一边学习本书时，他会说什么呢？“天啊，怎么书上的内容就是我工作的内容呢！感谢上帝！”。<br />
除了面向开发人员外，作者还考虑到了电子商务网站的系统管理员可能遇到的问题：系统环境的搭建和维护。在本书的附录部分，作者详细介绍了如何在主流的操作系统平台上安装、配置甚至自己编译PHP和MySQL。因为PHP和MySQL开放源码的缘故，企业可能会需要对这些工具和平台进行定制，而本书附录的内容，恰恰为系统管理员提供了这方面的帮助。<br />
综观本书全篇，内容广泛，风格严谨，理论和实践紧密结合。既有详细的概念说明，又有复杂而完整的实例代码，读者能够轻松地将自己所学的理论知识付诸实践。正是由于这个原因，本书适用的读者群非常广发。对于初学者来说，本书可以作为他们的教材和参考书,9对于有丰富经验的PHP和MySQL高手，本书也是一本很好的参考手册，因此本书适用于各个层次的PHP程序员。<br />
当然，本书也存在不一些不足的地方。笔者认为作者应该尝试在本书中加入一些关于PHP和MySQL协作开发与当今最流行的J2EE平台以及.NET平台的比较。这种比较内容将有助于企业和开发人员选择合适的平台和工具。或许，这些内容将在不远的第四版看到。</p>
<blockquote><p><span style="color: #ff0000;">（上部份）<a href="http://www.rayfile.com/files/cac45a91-a4d3-11dc-95c5-00142218fc6e/" target="_blank">下载地址</a></span></p>
<p><span style="color: #ff0000;">（下部分）<a href="http://www.rayfile.com/files/cac59c8f-a4d3-11dc-852b-00142218fc6e/" target="_blank">下载地址</a></span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2007/12/07/php-mysql-web-development-chinese-version-pdf.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

