知之可否

Be yourself; everyone else is already taken.​

C语言变长数组data[0]【总结】

1、前言      今天在看代码中遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在linux内核中,结构体中经常用到data[0]。这样设计的目的是让数组长度是可变的,根据需要进行分配。方便操作,节省...

2016-10-06 17:30:07

阅读数:254

评论数:0

从4行代码看右值引用

概述   右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是这样的: int i = 0; int& j = i;   这里的int&是对左值进行绑定(但是int&却不能绑定右值),相应的,...

2016-10-06 12:24:16

阅读数:377

评论数:0

静态链接库LIB和动态链接库DLL的区别

http://blog.csdn.net/augusdi/article/details/6460415 一、        静态链接库与动态链接库区别 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中...

2016-10-01 20:52:29

阅读数:892

评论数:0

C++11新特性学习笔记

最近学习了C++11的新特性,将学习内容整理下来以巩固记忆,C++11的新特性,可以分为两部分,第一部分是C++11核心语言的特性,第二部分是STL标准库的新特性。学习C++11主要参考了wiki上的一篇文章,在介绍右值引用的时候还参考了MSDN上一篇文章,由于这两篇文章写的时间比较早,和实际有些...

2016-08-31 21:53:40

阅读数:252

评论数:0

翻译:怎样理解 C++ 11中的move语义(基础)--- An answer from stackoverflow

前不久facebook在github上发布了一个c++工具库folly,其中的实现大量的使用了c++ 11的新特性,同时,gcc 从4.3版本开始支持c++ 11, 到现在的版本4.8,已经支持了绝大部分c++ 11的新特性(support list),让我感到时候有必要认真学习一下c++ 1...

2016-08-31 21:41:41

阅读数:222

评论数:0

C/C++内存泄漏及检测

该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间...

2016-08-30 21:56:21

阅读数:376

评论数:0

C程序编译过程浅析

前几天看了《程序员的自我修养——链接、装载与库》中的第二章“编译和链接”,主要根据其中的内容简单总结一下C程序编译的过程吧。 我现在一般都是用gcc,所以自然以GCC编译hellworld为例,简单总结如下。   hello.c源代码如下: ?[Copy to clipbo...

2016-08-29 21:45:40

阅读数:488

评论数:0

我所理解的C++反射机制

转自点击打开链接 1.前言 在实际的项目中,听到师兄说C++中用到了反射,出于好奇,就查阅相关资料,发现强大的C++本身并不支持反射,反而Java支持反射机制。当我得知这个事实时,一直唯C++马首是瞻的我,心中暗自落泪,悲叹不已。但是,C++的fans别难受,强大的C++本身不...

2016-08-20 16:29:40

阅读数:991

评论数:2

C++——模板特化和偏特化

1.引言 C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关注、应用和研究。理解和掌握模板是学习、应用和研究以及扩充STL的基础。而STL模板实例中又充斥着大量的模板特化和偏...

2016-08-14 11:25:11

阅读数:212

评论数:0

Boost智能指针——scoped_ptr

boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用: #include  #include  #include  class implementat...

2016-07-30 17:35:03

阅读数:256

评论数:0

extern C的作用详解

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而...

2016-07-30 17:28:30

阅读数:928

评论数:0

c++ 中的fill 和memset

fill 的头文件是 命名空间是std;  用法:  eg:  #include  using namespace std;  int main()  {           char s[100];           fill(s,s+100,'a');           ...

2016-07-29 15:05:34

阅读数:710

评论数:0

IP地址与无符号整形互转

通过位运算解析IP的原理,其实我们看到IP地址只是一个字符串,这个字符串是由整形数字转化而来的! 说白了IP地址就是个数字,下面我们看他的一个具体的转化过程, #include #include #include int main(void) { uns...

2016-06-14 15:56:00

阅读数:714

评论数:0

实现智能指针

#include<iostream> using namespace std;class point{ public: point(int val) :x(val){} ~point(){ cout << "deconstrutor...

2016-06-06 19:29:51

阅读数:208

评论数:0

c++内存池实现

利用C/C++开发大型应用程序中,内存的管理与分配是一个需要认真考虑的部分。 本文描述了内存池设计原理并给出内存池的实现代码,代码支持Windows和Linux,多线程安全。 内存池设计过程中需要考虑好内存的分配与释放问题,其实也就是空间和时间的矛盾。 有的内存池设计得很巧妙,内...

2016-06-03 21:28:23

阅读数:305

评论数:0

C++中,a++、a+=1、a=a+1、++a 有什么区别?以及效率问题

a++:a先创建自身的一个副本,然后a自增1,最后返回副本的值 a+=1: 事实上相当于++a a=a+1: 虽然有点雷同于a+=1,但不同的是此时右值的a和1做相加操作,形成一个副本然后赋值给a,所以有额外操作 ++a:将a自增1并返回a 鉴于a++和++a的差别,C++Primer建议用++a...

2016-06-02 21:54:57

阅读数:2229

评论数:0

traits编程技法感悟

转载自 镜中影的技术博客  本文链接地址: traits编程技法感悟)  URL:http://blog.csdn.net/linkpark1904/article/details/50790917 由于工作学习需要,在研究生阶段主要编程语言还是以C++为主,多少在学习语言的过程中,道听...

2016-06-01 09:48:07

阅读数:479

评论数:0

C++中模板的特化与偏特化

1.引言 C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关注、应用和研究。理解和掌握模板是学习、应用和研究以及扩充STL的基础。而STL模板实例中又充斥着大量的模板特化和偏...

2016-05-31 23:10:50

阅读数:1197

评论数:0

C/C++中volatile关键字详解

原文http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777432.html 1. 为什么用volatile?     C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 m...

2016-05-25 09:54:08

阅读数:508

评论数:0

减少C++代码编译时间的方法

c++ 的代码包含头文件和实现文件两部分, 头文件一般是提供给别人(也叫客户)使用的, 但是一旦头文件发生改变,不管多小的变化,所有引用他的文件就必须重新编译,编译就要花时间,假如你做的工程比较大(比如二次封装chrome这类的开发),重新编译一次的时间就会浪费上班的大部分时间,这样干了一天挺累的...

2016-05-21 16:55:02

阅读数:212

评论数:0

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