
C/C++
文章平均质量分 60
cqu20093154
这个作者很懒,什么都没留下…
展开
-
char[]和char*的区别
前面读书的时候看到有人在讲到了char[]和char*的区别,但是没有细讲。今天看《C陷阱与缺陷》,里面也讲到了这个问题。看了一下还是觉得比较玄乎,想想不如编一个例子然后看看汇编代码,这样一看就应该明了了。 代码非常的简单:#include char filename[] = "/etc/password";main(){ char *pathname = N原创 2014-09-24 16:29:50 · 781 阅读 · 0 评论 -
都是头文件的循环包含惹的祸
首先我们先建立一个项目,项目文件有:A.hB.hC.hA.cppB.cppC.cpp 文件内容如下:A.h#ifndef EVENTHANDLER_CEVENTHANDLER_H_HEADER_INCLUDED_BA392BB6#define EVENTHANDLER_CEVENTHANDLER_H_HEADE转载 2015-09-11 16:23:40 · 2650 阅读 · 0 评论 -
(转)VC运行库MD /MDd /MT /MTd /ML /MLd
VC编译选项 - 多线程(/MT) - 多线程调试 (/MTd) - 多线程DLL (/MD) - 多线程调试DLL (/MDd)C 运行时库 库文件 - Single thread(static link) ML libc.lib - Deb原创 2015-04-29 22:12:33 · 951 阅读 · 0 评论 -
字符串存储位置的疑问
字符串的存储位置到底在哪儿?按照我以前编汇编代码的经验,字符串肯定是放在数据段。但是在C/C++中,这个却不一定成立吧!昨天晚上跟群里的同学讨论,我们观点不太一样,他认为应该直接存在函数的栈空间。我可以肯定字符串常量会放在数据段,但是对字符数组我确实不太确定了。所以就分别在VC和GCC下试了试,看了个简单程序的反汇编代码。首先看看VC的吧:#include "string.h"#include "原创 2015-03-16 14:04:09 · 1265 阅读 · 0 评论 -
C++RTTI小总结
RTTI算是C++的一大特性之一了,但也是一个不太好懂的特性。以前一直没有理解清楚RTTI。通过最近的学习,似乎掌握了一点皮毛,这里做一个小总结。首先是《C++编程思想》上的一个例子,由于缺头文件,我把容器改成了vector。#include #include #include #include #include //for srand() and rand()using nam原创 2015-03-03 22:26:36 · 849 阅读 · 0 评论 -
C++异常机制的实现方式和开销分析
C++异常机制的实现方式和开销分析白杨http://baiy.cn 在我几年前开始写《C++编码规范与指导》一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了。没想到时隔几年以后才有机会把这个尾巴补完 :-)。还是那句开场白:“在恰当的场合使用恰当的特性” 对每个称职的 C++ 程序员来说都是一个基本标准。想要做到这点,就必须要了解语言中每个特性的实现转载 2015-03-02 16:39:49 · 2343 阅读 · 1 评论 -
C语言错误处理
学习C++的时候就没有怎么重视异常这部分知识,后来知道也基本没有看到C++项目里面用try/catch的。google编程规范中甚至直接说明不使用C++这个特性,所以我一直都没搞明白这个“简单的”try/catch。 查阅《C++编程思想》,我记录以下一些内容。首先是C语言的一些错误处理方法。 1) 出错信息可通过函数的返回值获得。如果函数返回值不能用,则可设置原创 2015-03-02 17:00:44 · 957 阅读 · 0 评论 -
C++静态成员变量
今天在弄一段代码的时候遇到了静态成员变量的问题。卡了一段时间后,果断翻出《深入探索C++对象模型》,大概明白了问题所在。这事给我的一点启示就是“纸上得来终觉浅,绝知此事要躬行”。首先看看问题吧!其实就是一个类型的定义。代码如下:原创 2015-01-14 12:05:53 · 1101 阅读 · 0 评论 -
《深入C++面向对象模型》之拷贝构造函数
花了几天时间,把《深入C++面向对象模型》看了一半的样子。确实如BBS上的同学说的那样,“帅呆了!”,绝对让你停不下来的节奏。这本书是C++经典书单里面的常客,《Effective C++》也是很多人推荐。说实话吧!我手头有一本《Effective C++》,却一直没有看完,准确地说是我没有在阅读的过程中得到很多乐趣。不是黑《Effective C++》,只是这本书的写作模式是条款式的。它的关注点原创 2014-12-24 11:47:42 · 761 阅读 · 0 评论 -
动态链接库的小总结
"动态链接库"这个名字非常的熟悉,却又常常让我非常的疑惑,比如今天。查了些资料也动了下手,把一些过程和结论记下来。问题一、库文件的后缀 一个比较常识的知识是,Linux下的静态库以.a结尾,而windows下的静态库以.lib结尾。Linux下的动态库以.so结尾,windows下的动态库以.dll。有一点值得注意的是,windows下VC使用的动态库一般还需要一个导原创 2015-01-30 10:35:54 · 1067 阅读 · 2 评论 -
智能指针shared_ptr
今天复习了一下智能指针,然后动了动脑子,恍然觉得以前并没有真正的理解智能指针。首先是shared_ptr,shared_ptr的作用就不做介绍了。那么shared_ptr是如何实现的呢? 我分析了一下,智能指针的要点就是“计数”和“指针”。所以智能指针的成员变量中就必须有计数值和对象指针。指针计数为零的时候自动销毁,所以析构函数中需要实现计数和对象销毁的功能。然后还要注意的就是复制构造函数原创 2015-09-19 12:45:56 · 634 阅读 · 0 评论