自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 学习心得

对于C++的编译并不需要#include文件的对应的cpp文件就可以编译了,因为编译过程只是声称一些标识(类似的汇编语句 如 [???]这种,在连接的过程才会进行替换其中的???)例如有如下三个文件aaa.hclass dddd{public: dddd(); ~dddd(); void dddddd(int); int tttt(int);};bbb.h

2016-02-22 11:26:39 348

转载 C++运算符重载讲解与经典实例

C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。例如: class complex {  public:   complex(double r=0.0,double I=0.0){real=r;imag=I;}   void display();  private:   double real;   dou

2016-02-26 11:21:00 434

转载 Make VC++ Compiles Fast Through Parallel Compilation

Make VC++ Compiles Fast Through Parallel CompilationPosted on March 22, 2014by brucedawsonThe free lunch is over and our CPUs are not getting any faster so if you want faster builds then

2016-02-23 15:52:36 2104

转载 The Evils of Unity Builds

Unity builds. I don’t like them.Of all the tools at your disposal to make a build faster, this is the worst. And it’s not just the “hey let’s #include .cpp files” weirdness, but the way that it ca

2016-02-23 15:39:01 556

转载 Reducing Compilation Time: Unity Builds

Reducing Compilation Time: Unity BuildsThis entry was posted on December 10, 2009, in Software Development and tagged C++,CMake, Compilation Time. Bookmark the permalink.7 Comments

2016-02-23 14:33:04 540

转载 自动构建 Unity Build 编译方式的 CMake 脚本

自动生成 unity_build.cpp 并构建 Unity Build 编译方式 ,提高编译速度。 # author: [email protected] # purpose: 自动构建 Unity Build 编译方式的 CMake 脚本# 描述:自动构建 Unity Build 编译方式## 用例:# file(GLOB SOURCE_FILES ${P

2016-02-23 10:56:39 1723

转载 如何加快C++代码的编译速度

C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了。比如我现在工作的源代码,哪怕使用Incredibuild调动近百台机子,一个完整的build也需要四个小时,恐怖!!!虽然平时开发一般不需要在本地做完整的build,但编译几个相关的工程就够你等上好一段时间的了(老外管这个叫monkey around,相当形象)。想想若干年在一台单核2.8GHZ上工作时的场景 -

2016-02-23 10:10:54 543

转载 转一篇本站关于自定义c实现com的帖子,文章很不错,翻译的也很给力

http://blog.csdn.net/wangqiulin123456/article/details/8092358原文:http://www.codeproject.com/Articles/13601/COM-in-plain-C用标准C编写COM(一)COM in plain C,Part1        如何在不使用MFC、ATL、WTL或其他框架下使

2016-02-22 18:56:29 490

转载 c++模板类(一)理解编译器的编译模板过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 如何组织编写模板程序 前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年

2016-02-22 18:55:14 248

转载 #pragma once与 #ifndef的区别

为了避免同一个文件被include多次1   #ifndef方式2   #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。    方式一:    #ifndef __SOMEFILE_H__    #define __SOMEFILE_H__    ... ... // 一些声明语句   

2016-02-22 18:34:46 268

转载 c++应用程序文件的编译过程

这里讲下C++文件的编译过程及其中模板的编译过程;一:一般的C++应用程序的编译过程。    一般说来,C++应用程序的编译过程分为三个阶段。模板也是一样的。在cpp文件中展开include文件。将每个cpp文件编译为一个对应的obj文件。连接obj文件成为一个exe文件(或者其它的库文件)。下面分别描述这几个阶段。1.include文件的展开。    includ

2016-02-22 18:14:43 500

转载 编译和链接

详解link有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual Stud

2016-02-22 18:13:26 239

转载 游戏中的网络同步机制——LOCKSTEP

最近忙的没时间做翻译,今天看到一篇介绍游戏同步机制的好文,不费力的转载了。原文地址:http://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockstep/?utm_source=tuicool&utm_medium=referral前言每个人或多或少都接触过网游,

2016-02-19 11:45:10 1074

转载 linux 下 C 编程 C版的try catch 捕捉段错误和异常处理

哇塞,C语言有try catch吗?当然没有。倒。。可能有人说了,那你野鬼说没有的东西做什么。     这里需要重申一下,所谓正向设计下问题检测的开发方法。正向设计时,在错误检测和问题修复的方法是指:      根据源码分析,在源码中加插检测代码的方式,验证对代码的理解和预判是否正确。     而反向跟踪是根据机器执行动作,反向理解逻辑的运行状态,例如GDB。两者很多方面都

2016-02-18 13:05:11 5340 1

转载 Linux下的段错误(Segmentation fault)产生的原因及调试方法(经典)

简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.         一 般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指 向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指

2016-02-18 11:32:41 769

转载 Linux下Signal信号

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一

2016-02-18 11:25:55 285

转载 捕获Linux段错误(Segment fault)并且打印错误堆栈

Linux上跑服务器如果遇到程序崩溃是一件很苦恼的事情, 再碰到重现很难的BUG, 估计只能通过传统的排查方法进行.在编写本文前, 笔者使用过诸如libunwind等库进行错误时堆栈打印, 但是其本身由于需要引用第三方库, 使用还是稍微麻烦.经过Google后, 居然找到一篇好文, 其通过捕获SIGSEGV信号, 并迫使程序进入gdb调试阶段, 利用gdb强大的调试功能可以进行各种

2016-02-18 11:10:27 3779

转载 关于Segmentation fault(段错误)探究

在rhel5.4上用GCC编程好长时间了(其实也就1个多月!),经常遇到这种情况:一个程序编译没有任何问题,当执行./a.out的时候出现:“Segmentation fault(段错误)”,下面就是最近的一次情况(目的只是测试strcat函数): 26 #include 25 #include 26 int main() 27 { 28         char

2016-02-18 11:08:04 606

转载 (转帖)C++ 对象的内存布局----主要看virtual 继承的解释

C++ 对象的内存布局前言07年12月,我写了一篇《C++虚 函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这 也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的问题,也是为了图一些表达上方便和简 单。不想,这篇文章成为了打开C++对

2016-02-18 10:28:36 454

转载 Linux 下 C++ 异常处理技巧

保留异常来源信息在 C++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的。异常的具体来源可以提供许多更好地处理该异常的重要信息,或者提供一些可以附加到错误日志的信息,以便以后进行分析。为了解决这一问题,可以在抛出异常语句期间,在异常对象的构造函数中生成一个堆栈跟踪。ExceptionTracer 是示范这种行为的一个类。清单 1. 在异常对象构造函

2016-02-18 02:17:25 371

转载 Linux下利用backtrace追踪函数调用堆栈以及定位段错误

一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于获取当前线程的

2016-02-18 02:10:57 344

转载 Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法

Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法 Linux下c/c++开发程序崩溃(Segment fault)通常都是指针错误引起的.以下是我们详细的对Linux core dump的调试技术进行的介绍: Linux core dump简介有的程... Linux下c/c++开发之程序崩溃(Segment fault

2016-02-18 02:05:11 2538

转载 Linux系统中的异常堆栈跟踪简单实现

转载请说明出处:http://blog.csdn.net/cywosp/article/details/25002201          在Linux中做C/C++开发经常会遇到一些不可预知的问题导致程序崩溃,同时崩溃后也没留下任何代码运行痕迹,因此,堆栈跟踪技术就显得非要重要了。本文将简单介绍Linux中C/C++程序运行时堆栈获取,首先来看backtrace系列函数——使用范围适合于

2016-02-18 02:04:02 514

转载 【C++11】完美转发的使用

原文 http://blog.csdn.net/aqtata/article/details/35372769完美转发(perfect forwarding)问题是指函数模板在向其他函数传递参数时该如何保留该参数的左右值属性的问题。也就是说函数模板在向其他函数传递自身形参时,如果相应实参是左值,它就应该被转发为左值;同样如果相应实参是右值,它就应该被转发为右

2016-02-06 15:48:37 535

转载 【C++11】POD数据类型

原文 http://blog.csdn.net/aqtata/article/details/35618709啥是POD类型?POD全称Plain Old Data。通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是一个POD类型。平凡的定义1.有平凡的构造函数2.有平凡的拷贝构造函数3.有平凡的移动构造函数

2016-02-06 15:46:31 341

翻译 C++重载类型转换操作符

原文链接 http://blog.csdn.net/yby4769250/article/details/7332449在需要做数据类型转换时,一般显式的写法是:[cpp] view plain copy"font-size:18px;">type1 i;  type2 d;  i = (type1)d; //显式

2016-02-06 15:13:32 313

原创 关于accept 返回的socket的阻塞属性

测试结果返回的这个socket也是阻塞的,同其他socket默认形式相同。(xp,vs08)recv函数一直卡在那。当手动设置后,即可:newconnection =accept(listeningSocket,(SOCKADDR *)&clientAddr, &len);u_long ulFlag = 1;ioctlsocket(newconnection,FIONBIO,&ul

2016-02-05 12:40:35 3251

转载 core文件来调试segment fault

如何使用core文件来调试segment fault:1.启动ulimit工具,如 ulimit -c 10002. 运行应用程序app3.等待程序出错,通常是在shell上打印kill或者segment fault信息,这时就已经生成了core文件,一般为core.xxx, .xxx是一个数据,对应运行时的线程号。4.执行gdb定位错误位置,如: gdb ./app ./core

2016-02-03 17:10:01 514

原创 asio 使用笔记

系统 centosIDE codeblock1设置IDE: project ------------> build options------------> compile settings-------------->勾上have g++ follow the C++11 ISO C++ language standard [-std=c++11]2 设置IDE:project --

2016-02-02 17:18:22 326

转载 std::move C++11 标准新特性: 右值引用与转移语义

新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。能够更简洁明确地定义泛型函数。回页首

2016-02-01 23:00:48 406

转载 std:forward 完美转发

概述:    // TEMPLATE CLASS identitytemplate    struct identity    {    // map _Ty to type unchanged    typedef _Ty type;    const _Ty& operator()(const _Ty& _Left) const        {    

2016-02-01 22:58:20 318

VisualGDB-5.1破解版(稀有)

十分强大的visual studio 调试Linux C/C++的工具,也可以调试Android,完美破解版,十分稀有!

2016-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除