
C/C++
文章平均质量分 79
FlyingIceCS
这个作者很懒,什么都没留下…
展开
-
const in C++
昨天看Bruce Eckel的Thinking in C++,上面谈到了const folding的问题,大家对中文版把该术语翻译成“常量折叠”意见挺大的,先不管怎么翻,内在意思就是编译器在编译时可以通过必要的计算把一个复杂的常量表达式通过缩减简单化。开始时觉得不大明白,接着又搜出下面一段比较有代表性的代码:#include using namespace std;int main原创 2008-07-18 14:48:00 · 649 阅读 · 0 评论 -
用Eclipse搭建C/C++开发平台
谈到Eclipse这个开源IDE,大家都会潜意识地把它和JAVA开发联系起来。没错,Eclipse用于JAVA application的开发是目前的主流,而且它本身也是需要JRE才能运行的,因而无论怎么看Eclipse都与JAVA有密不可分的联系。 但实际上Eclipse只是一个开发环境,一个为程序员提供的框架,与语言并无直接联系。自从2001年IBM将Eclipse捐献出来后,该项目得到了极大发原创 2010-04-13 22:45:00 · 6944 阅读 · 1 评论 -
论指针和数组的区别
在C/C++中,指针的使用的确是一个让人头疼的问题,稍有不慎程序就运行时崩溃。最近又看到很多人纠结于指针问题,下面就结合这些问题谈谈。 一个最普遍的问题就是很多人认为指针完全可以和数组进行互换,关于这一点《C专家编程》的作者已经在第四、第九和第十章中作了详细阐述。其结论就是我们不能混淆指针和数组这两个完全不同的概念,它们可互换是有条件的。 我们在程序中使用数组大致有4种情况原创 2010-04-17 05:54:00 · 1037 阅读 · 0 评论 -
构造函数、复制构造函数和赋值操作符的调用
C++中构造函数、复制构造函数和赋值操作符三者分别何时被调用很容易让人犯迷糊,下面结合例子就这个问题讨论一下。 假设我们有如下代码段:#include #include using namespace std;class Foo {public: Foo() { cout << "Foo constructor" << endl; } Foo(cons原创 2010-05-26 03:53:00 · 3202 阅读 · 2 评论 -
代码自动生成-宏带来的奇技淫巧
<br />众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你还不知道#和##,也不知道prescan,那么你肯定对宏的了解不够。我稍微讲解下宏的一些语法问题(说语法问题似乎不妥,macro只与preproces转载 2010-08-22 17:44:00 · 1715 阅读 · 0 评论 -
setjmp & longjmp in C language
最近几天重新把尘封已久的那本Expert C Porgramming拿出来又扫了一遍,发现以前遗漏了好多C语言的特性,看来之前那遍是白看了。书中第六章:运行时数据结构有一小节专门拿出来讲ISO C中的setjmp和longjmp。根据书上的说法,它是为了增强C有限的跳转能力而设的,与goto主要有两点不同: 第一点是goto只能当前函数内跳转,而longjmp允许跳转到其他文件的函数中。但是另一方面,longjmp也有自己的局限性,它只允许“故地重游”,也就是说,longjmp跳转的目标地点之前曾经执行过。原创 2011-05-08 23:35:00 · 842 阅读 · 0 评论