- 博客(4)
- 资源 (8)
- 收藏
- 关注
原创 c++的全局变量和size_type
全局变量的使用不使用任何修饰符:这样的情况就是定义全局的变量,注意,是定义,这意味着,其他地方不能再出现声明式或者定义式了。所以,如果你是在头文件使用这种方式,那么这个头文件只能被一个cpp文件包含,否则多个cpp文件包含它,就会在链接时报符号重定义错误,因为每个cpp都自己给自己的obj中定义了这个符号。这时,就要考虑使用extern方式了。使用extern方式:1.
2013-05-16 13:55:09 923
原创 惊叹,交换操作竟然可以不借助第三个中间数
今天在读《程序员的自我修养》时,第四章讲静态链接的开头,给出的实例程序中,有一个函数swap函数这样写的:void swap(int * a, int* b){ *a ^= *b ^= *a ^= *b;}叹为观止啊,我们通常想,先把a=b赋值,如果不借助第三方数,此时剩余信息已经只是关于原先的b的信息了,而上述代码则相当于:a = a' # b', b = (a'
2013-05-08 10:29:54 793 3
原创 递归处理正则表达式
/*这个小程序实现的是,匹配所有的子串。*表示重复>=0次 .表示匹配任意字符?表示重复0或1次+表示重复>=1次\加在上述字符前表示视作普通字符而非重复模式字符*/struct POS{ char * startIndex;//存放匹配子串在源串中起始索引 char * endIndex;//匹配子串在源串中下一次匹配的起始位置,
2013-05-07 13:26:29 766
原创 可变参数的函数的原理及其简单模仿
可变参数的定义是类似这样的:void _cdecl myfun(char * fmt, ...){...}这里的fmt主要是为了能够识别后面到底有几个参数及其类型的,否则编译器是无法判断函数参数个数的。由于参数的个数可变,所以也只有c调用风格的函数可以实现它,因为只有c调用风格的函数,参数的传递是由调用者负责的,而stdcall是由函数自身负责的。win32 api都是stdc
2013-05-07 12:43:50 640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人