![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 66
yuezhiren
这个作者很懒,什么都没留下…
展开
-
assert , ASSERT中的void
assert C\C++语言提供的断言宏.定义如下: #define assert(_Expression) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )ASSERT原创 2012-01-05 21:25:13 · 2585 阅读 · 0 评论 -
C++中的sizeof
昨天看的void的概念中提到了显式转换成为cv void.想起来转换,又没忍住翻到standard conversion.这一大坨隐式转换虽然可以让程序看上去简洁清爽,但是暗地里可是害了我不少次.有一次写从文件读写char类型数据的程序, 当时重载了读取/写入的函数,给出了 unsigned char 以及 int 两种类型的参数,当时写入的数据类型为char,想当然的以为应该是调用unsign原创 2012-01-07 16:48:58 · 896 阅读 · 0 评论 -
More effective C++ 今日一贴 之自增自减运算符[2]
据说古代(20世纪80年代)的程序员,经常因为 C++ 无法区分 ++运算符 以及 -- 运算符 的前缀和后缀调用而发牢骚,于是C++ 语言得到了扩展,允许对前缀与后缀形式的自增和自减进行重载.重载函数是通过他们参数类型上的差异得以区分,但是不管前缀和后缀形式的自增和自减都没有参数.为了解决语言上的这个问题,c++规定后缀形式有一个int类型参数,当函数被调用时,编译器悄无声息地传递了一个 0原创 2008-08-27 09:03:00 · 631 阅读 · 0 评论 -
指向数组的指针
代码段1:#include int main(void){ enum { m = 3, n = 4 }; int a[m][n]; int (*p)[m][n] = &a; printf("p : %p, *p : %p, **p : %p\n", p, *p, **p); return(0);}代码段2:原创 2013-04-10 22:11:47 · 748 阅读 · 0 评论 -
【K&R 习题 1-23】删除C/C++语言中的程序中的所有注释语句
原题: 编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。再C语言中,注释不允许嵌套。 题目的目的是要做一个简单的语法分析器,所使用的工具为状态机。状态 0 : start 输入 / 进入状态1 输入 " 进入状态4 输入 ' 进入状态8 输入其他字符原创 2012-09-08 14:45:31 · 4381 阅读 · 2 评论 -
Boost,scoped_ptr中的unspecified_bool_type
从官网上下的boosthttp://sourceforge.net/projects/boost/files/boost/1.48.0/已经在硬盘里扔了半个月了,一直也没时间碰.终于抽出来点空,从scoped_ptr看起来吧.毕竟智能指针相对熟练一点.scoped_ptr应该是属于最简单,安全的非侵入式智能指针了.auto_ptr赋值与拷贝构造会交出指针的控制权,这个行为真是令人头大,不仅不符合常原创 2012-02-09 21:56:18 · 1358 阅读 · 2 评论 -
C/C++宏的替换顺序[整理总结]
关于宏替换的顺序 看过csdn50楼的帖子 : http://topic.csdn.net/u/20090727/18/457c61bd-7461-431c-bbf9-924865cfe43c.html 之后的 总结 总结: 不管书写的代码是不是跨平台的,当替换路径中出现 operator# 与 operator## 时, 替换的次序可能会不会原创 2012-04-20 10:52:21 · 1908 阅读 · 0 评论 -
sharerd_ptr 实践,线程安全性,预定义宏以及FAQ [boost 1 49 0]
Handle/body idiomshared_ptr 一个通常用法是用来实现 handle/body 模式. handle/body模式可以避免在头文件中暴露实现.例子 shared_ptr_example2_test.cpp 包含头文件shared_ptr_example2.hpp .头文件中使用 shared_ptr 保存了了一incomplete type , 从而隐藏了实现翻译 2012-05-05 17:10:24 · 1578 阅读 · 0 评论 -
[boost] shared_ptr 概述
翻译来自 : http://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm3. 概要namespace boost { class bad_weak_ptr: public std::exception; template class weak_ptr; template class shar翻译 2012-03-08 20:44:19 · 2281 阅读 · 0 评论 -
[boost] shared_ptr 简介
翻译来自 : http://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm1. 简介: Shared_ptr 模板类用来保存动态申请的对象指针,一般在C++中动态申请使用new表达式. 当最后一个指向对象的share_ptr被销毁或者重置时,对象将会被delete掉. 每一个shared_ptr都实现了拷贝构造翻译 2012-02-25 20:19:27 · 1460 阅读 · 0 评论 -
More effective C++ 今日一贴 - 绝不要把多态应用与数组[3]
继承的一大特点就是 , 它允许你通过指向基类的指针和引用来操纵派生类对象.这种指针和引用的行为具有多态性 ------就好像它拥有多种类型.C++ 也允许你通过基类指针和引用来操纵派生类数组.但这算不上什么特性,因为它几乎从来不会按照你期望的那样运行. 例如: BST(二叉搜索数对象) class BST{......}; class BalancedBS原创 2008-08-28 09:23:00 · 541 阅读 · 0 评论