log和logf

用C/C++处理数据的时候,如果数值比较大就得注意数据类型。比如这个log函数的问题。 log接受double类型的参数,而logf接受float类型。 比如这段代码: #include #include int main() { double x = 4.4e52; printf(“log(%lf) = %f\n”, x, log(x)); printf(“log(%lf) = %f\n”, x, logf(x)); return 0; } linux/gcc下的输出是 log(43999999999999999701721741671911630964315171445538816.000000) = 121.216029 log(43999999999999999701721741671911630964315171445538816.000000) = inf

vimGdb

又回到了用VIM的状态。刚装起来了vimGdb,vim的各种gdb插件还是这个比较顺手。唯一的不足之处是vimGdb需要给源码打一个Patch。 vim最新的稳定版本是7.3,对应的vimGdb在这里 larrupingpig/vimgdb-for-vim7.3 下面的说明比较清楚了,需要注意的是vim的源码必须是 vim-7.3.tar.bz2 这个包,如果是从最新的库里checkout的代码会和patch不匹配。 比如在~/Temp下有 vim-7.3.tar.bz2 vimgdb-for-vim7.3.tar.gz 解压 $tar xvf ./vim-7.3.tar.bz2 $tar xvf ./vimgdb-for-vim7.3.tar.gz 打patch $patch -p0 < ./vimgdb-for-vim7.3/vim73.patch 编译 $cd ./vim73 $./configure --enable-gdb $make $sudo make install 把./vimgdb-for-vim7.3/vimgdb_runtime/里面的文件拷贝到~/.vim/下 推荐使用Pathogen管理plugin,会比较方便一点 在~/.vimrc里增加一句 source ~/.vim/macros/gdb_mappings.vim 然后就OK了。编译代码的时候用-gstabs+让gcc把调试的信息加上去。 具体请参看vimGBD的文档。这里也行:gdb.txt P.S. 大神们真无聊啊,居然把vim移植到iOS上去了...Vim iOS