内存屏障是指“由于编译器的优化和缓存的使用,导致对内存的写入操作不能及时的反应出来,也就是说当完成对内存的写入操作之后,读取出来的可能是旧的内容”(摘自《独辟蹊径品内核》)。内存屏障的分类:编译器引起的内存屏障缓存引起的内存屏障乱序执行引起的内存屏障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
最近用到gzip关的算法,于是想起了zlib这个库,于是将其下载下来编译。
首先,在官网上下载源码包:http://zlib.net/zlib-1.2.8.tar.gz 解压之后,打开vc 命令工具:%comspec% /k
""C:\Program Files (x86)\Microsof...
分类:
其他好文 时间:
2014-05-12 03:04:53
阅读次数:
367
CURL邮件列表中提到官方最新版本的windows
devel包中缺少文件,而我又用不到https,所以我就自己下载源码包来编译了
下载源码包:http://curl.haxx.se/download/curl-7.36.0.tar.gz 解压包: tar
-zxvfcurl-7.36.0...
分类:
其他好文 时间:
2014-05-12 02:50:35
阅读次数:
271
gcc和g++都是GNU(一个组织)的编译器。1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。3、编译阶段,g++会调用gcc;4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接...
分类:
其他好文 时间:
2014-05-12 02:19:46
阅读次数:
272
下载地址在程序中输入大于1.17或小于2.9的数字,点击计算。反编译源程序,查看算法。
分类:
其他好文 时间:
2014-05-12 01:37:45
阅读次数:
230
解决方案:选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False,问题轻松解决。问题分析:1.”嵌入互操作类型”中的嵌入就是引进、导入的意思,类似于c#中using,c中include的作用,目的是告诉编译器是否要把互操作类型引入。2.“互操作类型”实际是指一系列Com组件...
分类:
其他好文 时间:
2014-05-12 01:21:15
阅读次数:
293
error: ‘for’ loop initial declarations are only
allowed in C99
mode:编译参数加个-c99试试,你会发现可以了貌似c语言出来的时候还没有c99标准在for内部定义循环变量是c99的内容把int 定义挪出来就ok了
分类:
其他好文 时间:
2014-05-12 00:50:26
阅读次数:
212
这个版本已经和之前不一样了,有专门的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