代码改变世界

随笔分类 -  C/C++

Google C++编程风格指南

2013-10-13 18:15 by Rudrj2, 2043 阅读, 收藏, 编辑
摘要: 前言 从小就写字很挫,所以受够了被人鄙视的感觉,今天有个coder突然跟我说,你的代码怎么像小孩写的一样,顿时心情沮丧的极点。越来越发现一致的编程风格的重要性,于是把Google的C++编程风格指南看了一遍, 这里记录下于自己有益的rules。当规则有多个选择时,这里只记录个人习惯的用法, 并不代表它是唯一的用法。命名约定命名管理是最重要的一致性规则,因此我把它放在最前面。尽可能给出描述性名称。int num_errors; int num_completed_connections;文件名全部小写,用下划线做连接符。my_useful_class.ccC++文件以.cc 结尾,头文件以.h. 阅读全文

Sublime Text2 编译和运行C/C++程序(windows)

2013-01-02 23:50 by Rudrj2, 40769 阅读, 收藏, 编辑
摘要: Sublime Text2的高亮显示代码,非常好用,界面也非常漂亮,Sublime Text2工具栏有编译项,所以想让它来编译C和C++代码,不想每次几行代码也都打开visual studio,网上有gcc的解决方案。我想用微软的编译器,因为电脑里面已经装了Visual studio 2010,所以想用系统已有的编译器了.<1> 如果你的编译环境是GCC并且已经可以在命令行里用gcc编译源文件,那么Sublime Text2不要任何配置就可以对单个源文件进行编译和运行,下面的东西可以不看了。<2> 如果没有GCC或者就是希望用Visual Studio里的编译器CL进行 阅读全文

system()与execv()函数使用详解

2012-12-05 12:12 by Rudrj2, 32367 阅读, 收藏, 编辑
摘要: 在网上搜了很久都没有一个很好的解释,都只说了一方面system调用子进程后继续执行父进程,execv是调用一个新的进程,所以打算自己读读这两个执行文件源码,自己再找找其他不同: 相关函数: fork,execl,execle,execlp,execv,execvp 表头文件: #include<unistd.h> 定义函数: int execve(const char * filename,char * const argv[ ],char * const envp[ ]); 函数说明: execve()用来执行参数filename字符串所代表的文件路径,第二个参数系利用数组指针来 阅读全文

EVP_DigestInit(3)源码解析

2012-11-20 19:16 by Rudrj2, 3355 阅读, 收藏, 编辑
摘要: 由于今天做密码学实验需要去验证HASH函数的单向属性和抗碰撞属性,设计了一个用暴力破解的方法来查看使用多长时间来打破这两种属性,需要编写C函数来调用openssl库函数中的digest方法,查看EVP_DigestInit得到启发。以下是EVP_DigestInit(3)的源码解析: 1 本例子是openssl帮助文档提供的。该例子根据命令行输入的信息摘要算法名字对"Test Message\n"和"Hello World\n"字符串进行信息摘要操作。 2 #include <stdio.h> 3 #include <openssl/e 阅读全文

今天做了一个很糟糕的storage and buffer manager

2012-11-08 21:02 by Rudrj2, 479 阅读, 收藏, 编辑
摘要: 初步分析是LRE-2算法的问题,while(pt->less_recent != NULL && b > pt->less_recent->b2dist)这步判断耗时较多。。必须要修改。。。暂时无解。。void BMgr::LRU2(BCB * ptr, int frid){ if(mru == NULL) { mru = new LRUEle(); mru->fid = frid; mru->less_recent = NULL; mru->more_recent = NULL; if(ptr->stime != -1) { m 阅读全文

关于VS2008编译错误"error LNK2005: 已经在 .obj 中定义"

2012-11-06 21:07 by Rudrj2, 1013 阅读, 收藏, 编辑
摘要: 无意中遇到了这样的编译问题, 于是google,发现在.h文件里定义变量,发生这问题的概率是灰常大的.下面这段字是参考网上的说法:当你第一个使用这个头的.cpp文件生成.obj的时候,int i 在里面定义了当另外一个使用这个的.cpp再次[单独]生成.obj的时候,int i 又被定义然后两个obj被另外一个.cpp也include 这个头的,连接在一起,就会出现重复定义.不过经过一轮研究发现.. 其实这说法不怎么正确.. 最起码对VS来说..经过实验, 发现只要有两个cpp同时包含一个定义了变量的.h文件,就会提示错误.再回想下编译原理,obj是什么? 其实就是cpp翻译后的一坨中间代码. 阅读全文

使用ctime.h头文件来控制程序延时秒数

2012-11-03 14:58 by Rudrj2, 639 阅读, 收藏, 编辑
摘要: ctime.h 头文件定义了一个符号常量:CLOCKS_PER_SEC,该常量等于每秒包含的系统时间单位数,这个单位数在头文件中定义是 1000。头文件中的clock函数:clock_t clock(), 这个函数返回从 “开启这个程序进程” 到 “程序中调用clock() 函数” 时之间的CPU时钟计时单元 (clock tick) 数。waiting.cpp 代码如下: 1 View Code 2 #include <iostream> 3 #include <ctime> 4 5 int main() 6 { 7 using namespace std; 8 .. 阅读全文