
c/c++
文章平均质量分 76
wang_8910
孤木行舟眼观四海潮起潮落,宽厚仁和笑对人生无欲无求
展开
-
volatile关键字
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。转载 2010-12-08 10:15:00 · 363 阅读 · 0 评论 -
编程修养
<br />前言<br />什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。<br />我认为好的程序员应该有以下几方面的素质:<br /> 1、有专研精神,勤学善问、举一反三。<br /> 2、积极向上的态度,有创造性思维。<br /> 3、与人积极交流沟通的能力,有团队精神。<br /> 4、谦虚谨慎,戒骄戒燥。<br /> 5、写出的代码质量高。包括转载 2011-04-08 10:04:00 · 556 阅读 · 0 评论 -
C++强大背后
<br />在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括过程式、面向对象(object-oriented programming, OP)、泛型(generic programming, GP),后来为泛型而设计的模版,被发现及证明是图灵完备的,因此使C++亦可支持模版元编程范式(templa转载 2011-04-08 17:16:00 · 565 阅读 · 0 评论 -
高质量c c++编程
第1章 文件结构每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1.1 版权和版本的声明版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1)版权信息。(2)文件名转载 2011-04-05 14:22:00 · 3473 阅读 · 0 评论 -
C语言高效编程的几招
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。转载 2011-04-05 14:09:00 · 448 阅读 · 0 评论 -
C/C++语言可变参数表深层探索
C/C++语言有一个不同于其它语言的特性,即其支持可变参数,典型的函数如printf、scanf等可以接受数量不定的参数。如:printf ( "I love you" ); printf ( "%d", a );printf ( "%d,%d", a, b );第一、二、三个printf分别接受1、2、3个参数,让我们看看printf函数的原型:int printf ( const char *format, ... );从函数原型可以看出,其除了接收一个固定的参数format以外转载 2011-04-04 17:37:00 · 568 阅读 · 0 评论 -
C++中extern "C"含义深层探索
C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。转载 2011-04-04 17:32:00 · 345 阅读 · 0 评论 -
c++内存的分布
<br />一、一个经过编译的C/C++的程序占用的内存分成以下几个部分:<br />1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。 <br />2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。 <br />3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静转载 2011-05-16 22:06:00 · 693 阅读 · 0 评论 -
堆栈,堆和栈的区别
<br />堆和栈的区别<br />一、预备知识—程序的内存分配<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的转载 2010-12-08 11:16:00 · 458 阅读 · 0 评论 -
C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:转载 2010-12-08 10:53:00 · 349 阅读 · 0 评论 -
C++中巧用#define访问类的私有成员
其实,方法很简单,只要在类的声明前面加上如下一行代码就行了:#define private public转载 2010-12-08 10:41:00 · 605 阅读 · 0 评论 -
C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。转载 2010-12-08 10:35:00 · 348 阅读 · 0 评论 -
Makefile书写规则
3.1 规则举例foo.o : foo.c defs.h cc -c -g foo.c看到这个例子,各位应该不是很陌生了,前面也已说过,foo.o是我们的目标,foo.c和defs.h是目标所依赖的源文件,而只有一个命令“cc -c -g foo.c”(以Tab键开头)。这个规则告诉我们两件事:文件的依赖关系,foo.o依赖于foo.c和defs.h的文件,如果foo.c和defs.h的文件日期要比foo.o文件日期要新,或是foo.o不存在,那么依赖关系发生。如果生成(或更新)fo转载 2010-12-08 10:33:00 · 425 阅读 · 0 评论 -
C语言中sizeof详解
sizeof是C语言的一种单目操作符,它并不是函数。sizeof操作符以字节形式给出了其操作数所占存储空间的大小。操作数可以是一个表达式或括在括号内的类型名。操作数所占存储空间的大小由操作数的类型决定。作用就是返回一个对象或者类型所占的内存字节数。转载 2010-12-08 10:24:00 · 710 阅读 · 0 评论 -
setsocket用法大全
<br />1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:<br />BOOL bReuseaddr=TRUE;<br />setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));<br /><br />2. 如果要已经处于连接状态的soket在调用closeso转载 2011-04-09 15:46:00 · 847 阅读 · 0 评论