C/C++语言
文章平均质量分 67
kekuixiong
这个作者很懒,什么都没留下…
展开
-
extern用法详解
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。 2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外原创 2011-07-28 21:36:57 · 337 阅读 · 0 评论 -
再遇指针
今天闲着无事,去了HW的一个面试,其中有两页纸的笔试题,考的都是一些很基础的概念题,其中遇到一题是指针题,时间仓促,掌握不牢靠,好像写的答案有问题。晚上来把这几个概念好好理一理,争取以后不要再在这个上面翻船了。 原题如下: 请说明一下代码的含义:原创 2011-10-09 23:18:27 · 433 阅读 · 0 评论 -
栈和堆的区别
一个由 c/C++编译的程序占用的内存分为以下几个部分:1 、栈区( stack )—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2 、堆区( heap )—一般由程序员分配释放,若程序员不释放,程序结束时可能由 O原创 2011-08-29 22:21:08 · 494 阅读 · 0 评论 -
C++ : 重载、覆盖、和隐藏
这几个概念都有一个共同点:函数名称相同,所以不免让人混淆,大致的区别如下:重载(overload):必须在一个域中,函数名称相同但是函数参数不同,重载的作用就是同一个函数有不同的行为,因此不是在一个域中的函数是无法构成重载的,这个是重载的重要特征覆盖(over原创 2011-08-27 12:48:45 · 469 阅读 · 0 评论 -
inline用法详解
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/};转载 2011-08-01 23:10:24 · 82779 阅读 · 0 评论 -
void使用详解
1.空指针 一般来说,程序的起始地址是从“代码区”的0地址开始存放的(注:如果插入一个内存分布图,则更能说明问题,此处省略),但实际上现代操作系统并非如此,却保留了从0开始的一块内存。至于这块内存到底有有多大,与具体的操作系统有关。如果程序试图访问这块内存,则系统提示异转载 2011-07-30 12:37:02 · 1275 阅读 · 0 评论 -
volatile用法详解
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volat原创 2011-07-30 11:16:57 · 629 阅读 · 0 评论 -
enum类型的本质
enum类型的本质 至从C语言开始enum类型就被作为用户自定义分类有限集合常量的方法被引入到了语言当中,而且一度成为C++中定义编译期常量的唯一方法(后来在类中引入了静态整型常量)。 根据上面对enum类型的描述,到底enum所定义出来的类型是一个什么样转载 2011-07-30 23:35:59 · 845 阅读 · 0 评论 -
C语言编译全过程
C语言编译全过程 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处转载 2011-07-30 23:27:30 · 326 阅读 · 0 评论 -
static用法详解
一、C++中的static简介 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。面向过程设计中的static1、静态全局变量 在全局变量前,转载 2011-07-28 22:34:51 · 481 阅读 · 0 评论 -
typedef用法详解
typedef作为类型定义关键字,用于在原有数据类型(包括基本类型、构造类型和指针等)的基础上,由用户自定义新的类型名称。 在编程中使用typedef的好处,除了为变量取一个简单易记且意义明确的新名称之外,还可以简化一些比较复杂的类型声明。比如: t转载 2011-07-30 11:28:53 · 354 阅读 · 0 评论 -
函数指针与指针函数
1.指针函数的定义 顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列); 其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为转载 2011-07-30 11:48:02 · 352 阅读 · 0 评论 -
Const用法详解
Const用法详解一、const与#define的比较C++语言可以用const来定义常量,也可以用#define来定义常量。但是前者比后者具有更多的优点:1、 const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行静态类型安全检查;而对后者只能进行原创 2011-07-29 22:22:28 · 1453 阅读 · 0 评论 -
Linux内核中的do{}while(0)
Linux内核中的do{}while(0) 在Linux内核中,经常会看到do{}while(0)这样的语句,刚开始会疑惑,认为do{}while(0)毫无意义,因为它只会执行一次,加不加do{}while(0)效果是完全一样的,其实do{}while(0)只要用于宏原创 2011-10-10 16:17:53 · 1726 阅读 · 0 评论