C/C++语言
田贝
这个作者很懒,什么都没留下…
展开
-
大小写字母转换方法
#include /*大写字母A的ascii码为41h 01000001小写字母a的ascii码为61h 01100001利用这个特性可以很方便的进行大小写字母的转换*/#define Upper(x) ((x)&(0xCF))#define Low(x) ((x)|(0x20))void main(){ printf("%c\n",Upper('a')); print原创 2013-08-03 22:51:34 · 2105 阅读 · 0 评论 -
traits:Traits技术初探
概述:traits是一种特性萃取技术 color: #663300; font-family: 宋体; padding: 0px; margin: 0px;">,它在Generic Programming中被广泛运用,常常被用于使不同的类型可以用于相同的操作,或者针对不同类型提供不同的实现.traits在实现过程中往往需要用到以下三种C++的基本特性:enumtypedeftemp转载 2014-04-21 09:38:11 · 629 阅读 · 0 评论 -
C++中的强制类型转换 static_cast reinterpret_cast dynamic_cast const_cast
#include using namespace std;class A{public: operator int() {return 1;} operator char * () {return NULL;} virtual ~A(){}};class B:public A{};int main(int argc, char * argv[]){ A a;原创 2014-03-31 23:46:36 · 704 阅读 · 0 评论 -
使用STL实现LRU缓存
仿照http://blog.csdn.net/l402398703/article/details/22012551写了一遍LRUCache,自己对LRUCache的理解确实深刻了不少。cached_map :使用hash_map,便于根据用户提供的Key来找到相应的datahead,tail :表示所有当前已经使用的node节点,这里面的节点和cached_map中是一样的原创 2014-03-30 13:10:59 · 932 阅读 · 0 评论 -
C++之模板特化
关于C++中的模板,一直只会用最基础的部分。今天从网上找了一个文档,总结如下函数模板特化其实就是针对一个函数模板,定义一个特定类型的函数,函数模板更加具有通用性。#include #include template int compare( T const & l, T const & r){ return l < r ? -1 : ( l == r ? 0 : 1);}原创 2014-03-30 14:43:06 · 656 阅读 · 0 评论 -
C语言中的排序、二分查找
#include #include #include #include #include #include #include using namespace std;static void swap(int * const var1, int * const var2){ int tmp_val = *var1; *var1 = *var2; *var2 = tmp_v原创 2014-03-18 09:11:05 · 679 阅读 · 0 评论 -
STL中map的使用
#include #include using namespace std;class Student{public: string name; int age; string id;public: Student(string n, int a, string i):name(n),age(a),id(i){} /* 作为map中的key,必须可以比较大小 */ fri原创 2014-03-05 18:33:08 · 677 阅读 · 0 评论 -
Ubuntu安装配置Mysql
三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server。装完已经自动配置好环境变量,可以直接使用mysql的命令。 注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多。 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为转载 2014-02-20 09:49:49 · 563 阅读 · 0 评论 -
二叉排序树增删改查
今天闲来无事,自己写了遍排序树,不知怎么是,觉得比教材上写的长,总感觉出错了,可现在没书,有机会再校对校对bst.h#ifndef _MY_BST_H_#define _MY_BST_H_typedef struct node * link;struct node { int item; link l; link r;};/* 构造一个节点 */link new原创 2014-02-11 16:14:01 · 812 阅读 · 0 评论 -
C语言中的不定参数
说到C语言中的不定参数,就需要提到C语言中函数调用时的参数入栈顺序了显然,我们如果可以取得参数1的地址,那么顺藤摸瓜,就可以找到其他参数了,那么怎么确定传递了多少个参数呢,我们暂时规定最后一个参数为0.用常规的方法,#include int myfunc(int first, ...){ int sum = 0; int * varg_ptr = NULL;原创 2014-02-10 15:32:02 · 962 阅读 · 0 评论 -
关于setjmp longjmp的使用
#include #include #include #define DEBUGjmp_buf jb_env;#define CMD_ADD 1#define CMD_SUB 2#define CMD_MUL 3#define CMD_DIV 4#define GO_TO_START 0#define ERR_DIV_ZERO (11)#define ERR_CMD原创 2013-10-19 19:25:56 · 799 阅读 · 0 评论 -
关于大端法与小端法
#include #include #include #include #include #include void main(){ int a = 0x55550000; int * p = &a; if((*(char*)p) == 0x00) printf("小端法"); else if((*(char*)p) == 0x55) p原创 2013-09-11 17:38:18 · 1256 阅读 · 0 评论 -
Linux中的文件权限
Linux中文件主要分为7种类型:普通文件/目录文件/快特殊文件/字符特殊文件/FIFO/套接字/符号链接。如果要获取某个文件属于哪种类型,可以通过lstat函数来获取。#include "apue.h"#include #include #include int main(int argc ,char ** argv){ int i ; struct sta原创 2013-09-02 23:23:58 · 1122 阅读 · 0 评论 -
C++中的指针、数组作为参数
#include #include void func(char * str ){ cout << "字符数组长度:" << strlen(str) << endl; cout << "指针大小:" << sizeof(str) << endl;}int main(){ char str[] = "123456789"; cout << "数组大小:" << sizeof原创 2013-08-30 17:12:02 · 956 阅读 · 0 评论 -
Eclipse Error: A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in o
1. Locate your eclipse and jre folder. My paths are /opt/eclipse and /opt/jdk/jre, respectively.2. Run the command “sudo ln -s /opt/jdk/jre /opt/eclipse” This creates a reference in the eclipse fold原创 2013-08-10 21:39:25 · 1293 阅读 · 0 评论 -
关于const型引用与非const型引用
1:引用是被引用变量的别名,只要被引用变量和引用变量之一合法的改变,另外一个变量就会改变。#include using namespace std;int main(){ int i = 2000; const int & refI = i; i = 10; cout<<"refI = "<<refI<<endl; return 0;}上述代码的运行结果是:原创 2013-08-06 22:28:55 · 907 阅读 · 0 评论 -
C++逆向之switch-case
很长时间没有写日志了,前阵子看了下python,发现了python的无边无际,感觉继续学下去就没办法学习逆向相关的内容了。Switch-Case在编译器编译后主要有三种形式:1.有序,分支数小于3个2.有序,但是MaxValue-MinValue小于255的有序3.无序1.有序,分支数少于3个这种方式比较简单,编译器直接使用cmp reg32, mem这种类似于if原创 2014-12-03 12:57:24 · 867 阅读 · 0 评论