内存屏障是指“由于编译器的优化和缓存的使用,导致对内存的写入操作不能及时的反应出来,也就是说当完成对内存的写入操作之后,读取出来的可能是旧的内容”(摘自《独辟蹊径品内核》)。内存屏障的分类:编译器引起的内存屏障缓存引起的内存屏障乱序执行引起的内存屏障1、编译器引起的内存屏障:我们都知道,从寄存器里面...
分类:
其他好文 时间:
2014-05-12 06:00:23
阅读次数:
283
---恢复内容开始---C++编译器能够在两种数据类型之间进行隐式转换(implicit
conversions),它继承了C语言的转换方法,例如允许把char隐式转换为int和从short隐式转换为double。因此当你把一个short值传递给准备接受double参数值的函数时,依然可以成功运行。...
分类:
编程语言 时间:
2014-05-12 05:17:15
阅读次数:
481
CFLAGS=-Wall -g 这个-Wall开头字母一定要大写。这种小错误会导致不能编译!
其次就是在一个目录下面的应该是文件 ,而不能在继续用文件去进行编写代码,因为make寻找当前目录下的makefile,makefile里面用到的文件而不是目录里的代码,如果需要也要通过-l(l链接link)一下。所以再一个目录下,编写文件尽量用vi命令,而不是mkdir。这两个区别要搞清楚。...
分类:
其他好文 时间:
2014-05-11 14:32:06
阅读次数:
361
前些天写了一篇《令人作呕的OpenSSL》,顿时引来了大量的恶评,令我非常尴尬,同时也觉得悲哀。如果说you can you up之类的,我觉得起码这人看出了我的本意,只是怀疑我的能力,但是我看到一些人竟然在我评价了一段僵尸代码后认定我不懂编译代码,这就悲哀了,这段代码大致如下:#if 0 /*abcdefghijklmn, ( and
ABCDEFGHHHHSASA
...
分类:
其他好文 时间:
2014-05-11 14:08:34
阅读次数:
238
Andriod的apk在编译打包的时候将资源文件进行了二进制编译,.class文件编译成了.dex文件,经过了这几步之后,我们是无法查看资源文件和java文件,如果我们想看看市面上一些优秀app的设计和实现,我们就需要做一些工作了,具体有一下三个方面市面上有些app的布局设计的还是不错的,这时候你要借鉴参考一下,需要做一些工作了:
1.反编译资源文件: 需要apktool工具。apktool下载 Google code官方下载
2.反编译dex文件: 需要dex2jar工具。 dex2ja...
分类:
移动开发 时间:
2014-05-11 07:23:40
阅读次数:
548
typedef enum
//{
// GPIO_PIN_0 = ((u8)0x01), /*!
// GPIO_PIN_1 = ((u8)0x02), /*!
// GPIO_PIN_2 = ((u8)0x04), /*!
// GPIO_PIN_3 = ((u8)0x08), /*!
// GPIO_PIN_4 = ((u8)0x1...
分类:
其他好文 时间:
2014-05-11 07:10:01
阅读次数:
517
零、求人不如求已:
1、 在Linux中,文件,文件夹,驱动,命令,脚本都视为文件,也即一切皆file。
2、记住使用Linux 的关键就是六个字: 命令、选项、参数。
3、学会看帮助,不用求人。
学会看帮助,不用求人。
man touch
touch --help...
分类:
系统相关 时间:
2014-05-11 06:07:02
阅读次数:
567
C++11中为了帮助程序员写继承结构复杂的类型,引入了虚函数描述符override
重载虚函数 就加上关键字override 这样编译器可以辅助检查是不是正确重载,如果没加这个关键字 也没什么严重的error 只是少了编译器检查的安全性...
分类:
编程语言 时间:
2014-05-11 05:25:30
阅读次数:
382
本文主要分析了模板方法模式、命令模式、责任链模式、策略模式、迭代器模式,介绍它们的定义、优缺点、使用场景,以及实例代码。为了深刻地理解设计模式,最重要的还是动手编写代码。
我参照书中的例程重新构想了一些更加生动、易于理解的例子,希望大家喜欢。
代码可以通过以下链接进行浏览:
http://git.oschina.net/caipeichao/java-design-pattern
这些代码都经过编译运行,保证没有错误。...
分类:
其他好文 时间:
2014-05-11 04:44:19
阅读次数:
289
这个版本已经和之前不一样了,有专门的github的项目。https://github.com/mongodb/mongo-cxx-driver首先获取源代码:git clone https://github.com/mongodb/mongo-cxx-driver.git然后切换分支:git checkout 26compat然后用下面的命令编译:scons --prefix=/usr --use...
分类:
数据库 时间:
2014-05-11 01:40:46
阅读次数:
379