在c和c++中对const修饰符的不同处理
我不会说为什么在c++中用const比define好,因为我自己都没有多好地领悟到,反而还觉得define能够完成更强大的功能,只要使用得当。
在这里要说的只是一个小技巧,给自己备忘用的。
const在C和C++中最大的不同是,在C中,const默认具有外部链接,而C++中则是内部链接,那么用起来有什么不同呢?
假如我定义了
const int i = 50;
现在在C中,我希望每一个文件都能用到这个i,办法就是把这句话放到头文件里,然后再每个文件引用,于是问题就来了。
由于C中const默认是外部链接,那么当所有文件中都引用了这个头文件从而都具有const int i的声明的时候,就会发生冲突。
解决方案有两种:
1. 把头文件中的const int i =50改成 extern const int i;然后再在文件中声明const int i =50;
2.相对来说比较好的解决办法(推荐),把const int i=50改成const static int i=50,改成内部链接,虽然每个文件里的i都是不同的,但是考虑到i是const的常量,并不会修改其值,所以其实用起来也没有区别。
在c++中,由于本来就是内部链接,那么加不加static都可以,所以在c++中,用起来更不容易出错。
相关文档:
原文:http://hi.baidu.com/magicdemon/blog/item/821b2e22d7df494cad34debd.html
C++下基本类型所占位数和取值范围:
符号属性 长度属性 基本型 所占位数 取值范围 输入符举例&n ......
C/C++头文件一览 收藏
C/C++头文件一览
C、传统 C++
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#i ......
下载源代码
Python简介
Python是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,能够简单而有效地实现面向对象编程,特别适用于快速应用程序开发,也可以用来开发大规模的重要的商业应用。Python是一个理想的脚本语言。
Python免费开源,可移植到多种操作系统,只要避免使 ......
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计 ......
嵌入到多个系统编程时常常出现编码问题,特别是中文,并且对于国标GB2312来说,不像UTF-8那样可以用算法直接转为unicode(传说是这么说的,我也没试过),所以GB到Unicode只能是一对一的转换。
以前碰到过GB转为Unicode的难题,在网上找到了源码,我只是修改了一下查找的代码,将查找算法改为二分查找。
&n ......