C/C++编程
文章平均质量分 83
pysjp
流体情感醉逍遥
展开
-
extern用法
extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字.它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 1、对于extern变量来说,仅仅是一个变量的声明,其并不是在定义分配内存空间。如果该变量定义多次,会有连接错误2、通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。也就是说c文件里面定义,如果该函数或者变量原创 2008-07-19 00:38:00 · 554 阅读 · 0 评论 -
c语言宏定义的使用(二)
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigne转载 2009-02-26 22:16:00 · 591 阅读 · 0 评论 -
c语言宏定义的使用(一)
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP)转载 2009-02-26 22:12:00 · 888 阅读 · 0 评论 -
C/C++位操作技巧
检测一个无符号数是不为2^n-1(^为幂): x&(x+1) 将最右侧0位改为1位: x | (x+1) 二进制补码运算公式: -x = ~x + 1 = ~(x-1) ~x = -x-1 -(~x) = x+1 ~(-x) = x-1 x+y =转载 2009-02-26 22:25:00 · 2223 阅读 · 2 评论 -
c/c++中的位操作
C/C++支持比较低阶的位运算,在是众人皆知的了。每本C/C++的教科书都会说到这部分的内容,不过都很简略,我想会有很多人不知道位运算用在什么地方。这个帖子就简略说说位运算的用处,更进一步的用法要大家自己去体会。而主要说的是操作标志值方面。 /****************************************/#define BTI_MSK(bit) (1 #de原创 2009-02-26 22:21:00 · 2815 阅读 · 2 评论 -
经典的位运算实例
1) int型变量循环左移k次,即a=a >16-k (设sizeof(int)=16) (2) int型变量a循环右移k次,即a=a>>k |a (3)整数的平均值 对于两个整数x,y,如果用 (x+y)/2 求平均值,会产生溢出,因为 x+y 可能会大于INT_MAX,但是我们知道它们的平均值是肯定不会溢出的,我们用如下算法: int average(int x, int y) //返回X转载 2009-02-17 22:22:00 · 984 阅读 · 0 评论 -
函数指针与软件设计
记得刚开始工作时,一位高手告诉我,说,longjmp和setjmp玩得不熟,就不要自称为C语言高手。当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法。后来明白那不单是跳来跳去那样简单,而是一种高级的异常处理机制,在某些情况下确实很有用。 为了显示自己的技巧,也在自己的程序中用过几次。渐渐发现这样的技巧带来的好处是有代价的,破坏了程序的结构化转载 2009-02-17 21:32:00 · 577 阅读 · 0 评论 -
C++各大有名库的介绍——字符串
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 C++各大有名库的介绍——字符转载 2009-01-03 20:46:00 · 700 阅读 · 0 评论 -
C++各大有名库的介绍——GUI
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 C++各大有名库的介绍——GU转载 2009-01-03 20:34:00 · 769 阅读 · 0 评论 -
C++各大有名库的介绍——C++标准库
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 C++各大有名库的介绍之C++转载 2009-01-03 20:33:00 · 538 阅读 · 0 评论 -
C++资源之不完全导引
1,前言 无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippman先生曾在《C++ Primer》一书中指出“C++是最为难学的高级程序设计语言之一”,人们常将“之一”去掉以表达自己对C++的敬畏。诚然,C++程序设计语言对于学习者的确有很多难以逾越的鸿沟,体系结构的庞大,应接不暇并不断扩充的特性……除此之外,参考资料之多与冗转载 2009-01-03 20:17:00 · 606 阅读 · 0 评论 -
C++各大有名库的介绍——网络通信
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 C++各大有名库的介绍——网络转载 2009-01-03 20:34:00 · 804 阅读 · 0 评论 -
C++名人的网站
正如我们可以通过计算机历史上的重要人物了解计算机史的发展,C++相关人物的网站也可以使我们得到最有价值的参考与借鉴,下面的人物我们认为没有介绍的必要,只因下面的人物在C++领域的地位众所周知,我们只将相关的资源进行罗列以供读者学习,他们有的工作于贝尔实验室,有的工作于知名编译器厂商,有的在不断推进语言的标准化,有的为读者撰写了多部千古奇作…… 1、Bjarne Stroustruphtt转载 2009-01-03 20:13:00 · 701 阅读 · 0 评论 -
C++开源跨平台类库及在VC++.net中应用的配置
在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器重新编译即可。 经典的C++库: STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了,故目前不怎么用它了。 Boost---------准标准库, 功能强大 涉及能想的到转载 2009-01-03 20:10:00 · 832 阅读 · 0 评论 -
C++ 中字符类型总结
1.区别wchar_t,char,WCHAR ANSI:即 char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数。 UNICODE:wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t; 另外,在头文件中有这样的定义:typedef wchar_t WCHAR原创 2008-08-03 14:36:00 · 543 阅读 · 0 评论 -
Debug Print
#define DBGPRT(fmt,args...) / do{ / FILE* fp= fopen("/home/debug.log","a+"); / if( fp != NULL ) / { / fprintf(fp," /n %s(%d)-%s: /n",__FILE__,__LINE__,__FUNCTION__); / fprintf(fp,f原创 2009-03-01 22:47:00 · 802 阅读 · 0 评论