随笔分类 - C/C++语法
摘要:如下,宏定义带参数时,宏名中参数不能加括号:
阅读全文
摘要:#error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。
语法:
#error [用户自定义的错误消息]
注:上述语法成份中的方括号“[]”代表用户自定义的错误消息可以省略不写。
阅读全文
摘要:介绍STL模板的书,有两本比较经典:
一本是《Generic Programming and the STL》,中文翻译为《泛型编程与STL》,这本书由STL开发者 Matthew H.Austern编著,由STL之父alexander Stepanov等大师审核的,介绍STL思想及其使用技巧,适合初学者使用;
另一本书是《STL源码剖析》,是《深入浅出MFC》的作者侯捷编写的,介绍STL源代码的实现,适合深入学习STL,不适合初学者。
下面主要介绍泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系。
阅读全文
摘要:EOF是文件的结束符,具体可以作为文本文件的结束符,也可以作为键盘输入char类型数据时的结束符。对于不同的系统,EOF的定义可能不同,一般定义为-1。因为char类型的数据范围是0~255,不可能是-1,EOF定义为0~255之外的数据理论上都是可以的。
一般在C语言中用getchar()函数或scanf获取char类型时,可用EOF作为结束符。但对于C++,若用getchar()函数或scanf获取char类型时,也可用EOF作为结束符,这是兼容C的特性;但若用cin获取char类型数据,若试图用EOF结束输入,输入ctrl+z时则会陷入死循环,具体见下面的实例。
阅读全文
摘要:经常看到有建议说要使用 #include 代替 #include stdio.h,但很少有人提及这将把所有的symbol放进std namespace,而非 global namespace.这样,就必须写成std::printf(...)(注意是必须,但有的编译器却能通过,具体解释见下面),简单的写成printf是不行的。
阅读全文
摘要:primer上说++优先级高,但我网上查了下,好多说二者优先级一样,从右向左。
这两种解释的结果是一样的。哪个是对的?
阅读全文