
c,c++
xuhao_xuhao
这个作者很懒,什么都没留下…
展开
-
operator new在C++中的各种写法
乍一看,在C++中动态分配内存很简单:new是分配,delete是释放,就这么简单。然而,这篇文章讲得要复杂一点,并且要考虑到自定义层次。这也许对简单的程序并不重要,但对你在代码中控制内存却是十分必要的,是否能写一个自定义的分配器,某种高级内存管理表或一个特定的垃圾回收机制。这篇文章并不是一个综合的手册,而是一个C++中各种内存分配方法的概述。它面向已经很熟悉C++语言的读者。转载 2014-09-22 23:26:12 · 496 阅读 · 0 评论 -
智能指针(三):unique_ptr使用简介
我们知道auto_ptr通过复制构造或者通过=赋值后,原来的auto_ptr对象就报废了.所有权转移到新的对象中去了.而通过shared_ptr可以让多个智能指针对象同时拥有某一块内存的访问权.但假如我们不希望多个内存块被多个智能指针对象共享,同时又不会像auto_ptr那样不知不觉的就让原来的auto_ptr对象失效,可咋整呢?这个时候就要使用unique_ptr了,顾名思义嘛,un转载 2015-01-17 16:03:29 · 448 阅读 · 0 评论 -
C++预编译头文件stdafx.h作用
许多初学 VC 的朋友也许都为那么一个问题困扰过: 为什么所有的 cpp 都必须 #include "stdafx.h" 也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含。可是,这到底是为什么呢?预编译头有什么用呢? 这得从头文件的编译原理讲起。其实头文件并不神秘,它的全部作用,就是把自己的所有内容直接“粘贴”到相应的 #in转载 2015-01-18 11:12:47 · 654 阅读 · 0 评论 -
c/c++内存对齐详解
c/c++内存对齐详解 一、为什么会有内存对齐? 进行内存对齐的作用主要有两个. ( 1 )平台移植 : 不是所有的硬件平台都能够访问任意地址上的数据, ( 2 )性能 : 内存对齐后访问速度提升了 (对于访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。) 为什么内存对齐会提升效率?转载 2015-10-01 23:57:51 · 643 阅读 · 0 评论 -
异常和异常处理(windows平台)
翻译的不好,莫怪。原文地址: http://crashrpt.sourceforge.net/docs/html/exception_handling.html#getting_exception_contextAbout Exceptions and Exception HandlingAbout Exception当程序遇到一个异常或一个严重的错误时,通常意味着它不能继转载 2015-10-30 23:07:08 · 3402 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make转载 2014-11-24 23:11:05 · 889 阅读 · 0 评论 -
CAS原子操作实现无锁及性能分析
Author:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.youkuaiyun.com/chen19870707Date:Nov 13th, 2014最近在研究nginx的自旋锁的时候,又见到了GCC CAS原子操作,于是决定动手分析下CAS实现的无锁到底性能如何,网上关于CAS实现无锁的文章很多,但少转载 2016-04-05 23:26:47 · 315 阅读 · 0 评论 -
C++11之 unique_ptr
在C++11中加入了很多的新特性,unique_ptr一枝独秀,对于动态分配的内存对象,它简单有效。虽然它不是万能的,但是它做的已经够好了:利用简单的语法便可以管理动态分配的对象。 基本语法:unique_ptr 是一个模板类,你可以很简单地构造一个unique_ptr的对象,如下: ?1std::unique_ptr p(转载 2015-01-17 15:54:58 · 481 阅读 · 0 评论 -
vector 释放内存 swap
http://blog.youkuaiyun.com/jerryjbiao/article/details/7389233 相信大家看到swap这个词都一定不会感到陌生,甚至会有这样想法:这不就是简单的元素交换嘛。的确,swap交换函数是仅次于Hello word这样老得不能老的词,然而,泛型算法东风,这个小小的玩意儿却在C++ STL中散发着无穷的魅力。本文不仅详细地阐述STL泛转载 2014-12-27 01:26:48 · 352 阅读 · 0 评论 -
查看gcc的默认宏定义命令
有些时候我们在编写代码或者阅读开源项目时经常会遇到一些陌生的宏定义,在找遍所有源代码都没发现其在哪里被定义过,这时这些宏定义很可能是系统编译器自己定义的,例如[cpp] view plaincopyprint?#ifdef RW_SPINLOCK_USE_X86_INTRINSIC_ // A more balanced Read-Write spin转载 2014-12-20 23:31:32 · 590 阅读 · 0 评论 -
C++内存管理
C++内存管理[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然转载 2014-09-24 23:25:34 · 470 阅读 · 0 评论 -
C++指向类成员函数的指针
http://blog.youkuaiyun.com/jinjinclouded/article/details/5189540转载 2014-09-23 19:02:46 · 412 阅读 · 0 评论 -
C++对象模型
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细 节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the转载 2014-10-25 16:43:08 · 376 阅读 · 0 评论 -
《C++字符串完全指南——第一部分:win32 字符编码》
引言毫无疑问,你肯定见过像TCHAR, std::string, BSTR等等这类字符串类型.也包括一些以_tcs开头的奇怪的宏。也许你正盯着屏幕"哇哇"的发愁,然而阅读完本文情况将会改观。这篇指南概述了引入各种类型字符串的目的,展示了它们的一些简单用法,同时描述了在必要的时候在它们之间如何进行转换。在第一部分,将会涉及三种类型的字符编码。理解编码方案的工作原理对你至关重要。即使你现在已经转载 2014-09-30 18:00:26 · 575 阅读 · 0 评论 -
C/C++中volatile关键字详解
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that转载 2014-09-30 12:18:55 · 382 阅读 · 0 评论 -
c++中的异常
原文出处:http://objects.nease.net/ http://www.360doc.com/content/09/0122/09/799_2381375.shtml 1.简介 1.1常用的错误处理方式 1.2 不常用的处理方式 1.3 异常转载 2014-11-30 23:31:33 · 372 阅读 · 0 评论 -
无锁队列的实现
http://coolshell.cn/articles/8239.html关于CAS等原子操作在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。有了这个原子操作,我们就可以用其来实现各种无锁(lock f转载 2014-11-30 21:18:24 · 334 阅读 · 0 评论 -
STL的线程安全解决方案.
由于STL不是线程安全的, 所以在每一次插入元素,删除元素,读取元素时,必须保证原子操作. 读取元素也许要原子? 嗯,是的. 因为你得到了一个迭代器后, 这个迭代器对应的容器可能被别的线程修改!所以(下面来自> 条款十二): 1)在每次调用容器的成员函数期间都要锁定该容器。 2)在每个容器返回的迭代器(例如通过调用begin或end)的生存期之内都要锁定该容器。转载 2015-01-09 00:23:33 · 365 阅读 · 0 评论 -
GNU C中不为人知的特色:__attribute__机制
十一放假放的不亦乐乎啊,今天才静下来看看技术,偶然碰到了__attribute__,虽然之前在看Linux内核代码时见过很多次,但还是对它熟视无睹,罪过啊,下面的文章是从源码网上转载的,原文在这里:http://www.yuanma.org/data/2006/0625/article_948.htm,此处只是做简单阐述,共同进步。 GNU C的一大特色(却不被初学者所知)就是__a转载 2016-04-09 17:29:13 · 416 阅读 · 0 评论