自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 volatile 关键字

每个变量和其名字一样善变,有时候它善变是发自内心的,有时候是外部因素决定的,只有volatile变量才会表里如一,因此获得了专一王子的美誉。 volatile字面意思是易挥发、易变化的意思,它修饰的变量表示该变量的值很容易由于外部的因素而发生改变,强烈要求编译器要老老实实的在每次对变量进行访问时去内存里读取。举个生活中的栗子: 你明天 有一个朋友要过生日,今天把要送的礼物打包好了,一般情况下

2016-07-29 09:30:32 201

原创 关于函数声明

今天在写趣味一百题的时候,注意到答案是这样的发现主函数中有这么一句话:void f();一开始的时候竟然没有意识到这是函数声明,还在吐槽这个程序没有声明函数……才发现自己对函数声明这一块没有重视…… 在C语言中,函数声明称为函数原型(function prototype)。使用函数原型是ANSI C的一个重要特点。它的作用主要是利用它在程序的编译阶段对调用函数的合法性进行全面检查。 说明:

2016-07-27 09:56:07 557

原创 malloc calloc realloc的函数原型和功能

malloc1.函数原型 void *malloc(size_t size); 2.功能 malloc()在内存的动态存储区中分配一块长度为size字节的连续区域。参数size为需要的内存空间的长度,返回该区域的地址calloc1.函数原型 void *calloc(size_t nmemb, size_t size); 2.函数功能 calloc()与mal

2016-07-25 19:30:02 1398

原创 远指针和近指针,还有巨指针到底是啥玩意

char near p; /定义一个字符型“近”指针*/ char far p; /定义一个字符型“远”指针*/ char huge p; /定义一个字符型“巨”指针*/首先要从8086处理器体系结构和汇编渊源讲起。大家知道,8086是一个16位处理器,它设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(

2016-07-21 16:54:23 694

原创 关于函数的可变参数

关于函数的可变参数 前提:一般我们编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的实际参数。但在某些情况下我们希望函数的参数个数可以根据需要确定,因此c语言引入可变参数函数。 一、什么是可变参数 函数中参数的个数和类型是可变的,这就是可变参数 例如:printf()这个函数,它的定义是这样的: SYNOPSISint printf(const c

2016-07-21 15:28:59 1035

原创 几个重要的库函数strpcy\strncpy\memcpy……

strcpy strcpy函数的原型是: char * strcpy(char* dest, const char* src) strcpy的实现经常要注意的细节是: (1)判断地址是否为空,个人感觉可以使用断言 (2)参数只有两个地址,没有拷贝的长度。拷贝到’\0‘时就会终止,要保证最终dest末尾是’\0’。 (3)要保证目标字串的长度足够,能够容纳原串的长度。 (4)因为拷贝是d

2016-07-16 20:58:28 973

原创 小数的二进制表示

正小数的二进制表示 比如说5.6整数部分5用2进制为101小数部分0.6 有这样一个公式: *2 如果<1就为0,基数=基数;大于1,就为1,基数=基数-1 0.6*2=1.2>0 那么就为1 基数=1.2-1=0.20.2*2=0.4<0 那么就为0,基数=0.40.4*2=0.8<0,那么就为0,基数=0.80.8*2=1.6>0 那么就为1,基数为1.6-1=0.6::::所以5.6可以表示

2016-07-14 15:35:33 2195

原创 printf&scanf的使用注意事项

1、 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。但和printf()函数中格式字符串的用法有一些小区别。可查c primer plus 的68页以及79页。scanf:注意事项 (1) 对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上”&”操作符。 (2)

2016-07-14 09:35:06 1456

转载 C语言的标准

K&R C   1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程式设计师称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色: • 结构(struct)类型 • 长整数(long int)类型 •

2016-07-11 17:27:27 348

转载 面向过程处理机制VS面向对象处理机制

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 C++对C的扩展Cute:封装,多态,继承,类,模版,STL泛型编程。 面向过程一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出

2016-07-11 15:40:01 396

原创 左右法则is interesting

左右法则简单来说就是先找到变量名,然后往右看,再往左看。/* C指针声明解读之左右法则 C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文

2016-07-11 15:11:53 399

原创 可重定位目标文件(多位高手回答版,未综合)

一个c/c++程序要经过预处理,编译,汇编和连接四步生成可执行文件,第三部汇编后生成的 .o 文件即OBJ文件,也称为可重定位目标文件,这里的可重定位该如何理解。 简单来说,就是说文件里面的代码段和数据的地址还没有最终确定。 编译器编译后产生的目标文件是可重定位的程序模块,并不能直接运行,链接就是把目标文件和其他分别进行编译生成的程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可运行

2016-07-08 20:10:30 3659

转载 GCC优化选项(2)

相关博客http://blog.chinaunix.net/uid-24954950-id-2956476.html 相关博客http://blog.csdn.net/misiter/article/details/7514428 相关博客http://blog.chinaunix.net/uid-23916171-id-2653114.html Gcc 编译优化简介 gcc 提供了为了满足用

2016-07-07 19:45:02 615

转载 GCC 优化选项(1)

找到英文版的了,很尴尬;-O' -O1’ Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a la·rge function. With `-O', the compiler tries to reduce code size and executio

2016-07-06 20:40:34 376

原创 编译的细分————

编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言(目标文件),并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 过程:c文件–>预处理-->编译-->汇编-->链接–>可执行文件 1.gcc -E test.c -o test.i 生成.i文件 编译预处理读取c源程序,对其中的伪指令(以#开头的指令)

2016-07-06 20:12:48 316

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除