c/c++
文章平均质量分 63
欢快的火车嘟嘟嘟
代码行下忧郁了青春,迷惘路上虚度着华年
展开
-
解析“extern”
解析“extern”1、 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i; void main(){}转载 2014-03-13 14:06:30 · 510 阅读 · 0 评论 -
关于如何利用移位运算和逻辑运算来加速算法的小技巧
今天看到一个小技巧:如果一个整数要做2的整数次幂的乘法或除法时,可以通过移位操作来代替,如此,可以提高执行效率。大抵是这样的:int i(初始化值);则计算 i * 4时,可以等效的通过计算 i 话虽如此,程序验证之,代码是在VS2012下编译运行的:#include #include #define LOOP_NUM 1000000000int main(int原创 2014-03-20 20:05:42 · 2004 阅读 · 0 评论 -
c中如何输出一个宏定义的字符串?
做如下宏定义:#define Macro Test#define PrintStr(str) #str#define PrintMacro(str) PrintStr(str)则PrintMacro(Macro)即为“Test”则std::cout 回输出Test原创 2014-03-13 16:06:25 · 4844 阅读 · 0 评论 -
模板类声明和定义为何要写一起
前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首先遇到的事实却是“传统”编程方法(转载 2014-04-22 17:38:43 · 468 阅读 · 0 评论 -
C++重载类型转换操作符
在需要做数据类型转换时,一般显式的写法是:[cpp] view plaincopy"font-size:18px;">type1 i; type2 d; i = (type1)d; //显式的写类型转,把d从type2类型转为type1类型 这种写法不能做到无缝转换,也就是直接写 i = d,而不需要显式的写(typ转载 2014-04-23 11:30:59 · 505 阅读 · 0 评论 -
C++语言的15个晦涩特性
这个列表收集了 C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非常庞大,我总是能学到一些新知识。即使你对C++已了如指掌,也希望你能从列表中学到一些东西。下面列举的特性,根据晦涩程度由浅入深进行排序。1. 方括号的真正含义2. 最烦人的解析3.替代运算标记符4. 重定义关键字5. Placement new6.在声明变量的同时进行分支7.转载 2014-04-14 13:12:31 · 470 阅读 · 0 评论