malloc分配一块连续的内存。
malloc实际分配的可能比你请求的要多一些。
如果系统无法向malloc提供更多的内存,malloc就会返回一个NULL指针.
malloc返回一个void *指针
对于要求边界对齐的机器,malloc所返回的内存满足边界对齐
malloc没有对内存清0
calloc有个对内存清0的过程
realloc用来修改一个原本已经分配内存块的大小。如果要缩小内存块,该内存块尾部的部分内存将被拿去。如果扩展一块内存,有两种情况。情况一,这块内存原有的内容将被保留,新增加的内存添加在原有内存的后面。情况二,如果原有内存块无法改变大小,realloc将分配另一块正确大小的内存,并把原先那块内存的内容复制到新的块中。因此在使用realloc之后,你就不能再使用指向旧内存的指针,而是应该改用realloc所返回的指针
如果realloc函数的第一个参数是NULL,那么它的行为就和malloc一模一样.
释放一块内存的一部分是不被允许的。动态分配的内存必须整块一起释放.
不要释放已被free的内存.
函数只能返回一个标量,不能返回一个数组
预处理器的主要任务包括删除注释,插入被#include指令包含的文件的内容。定义和替换由#define指令定义的符号以及确定代码的部分内容是否应该根据一些条件编译指令进行编译.
__FILE__ 进行编译的源文件名
__LINE__ 文件当前行的行号
__DATE__ 文件被编译的日期
__TIME__ 文件被编译的时间
__STDC__ 如果编译器遵循ANSI C,其值就为1,否则未定义
#include 预处理器删除这条指令,并用包含文件的内容取而代之。
一个头文件如果被包含在10个源文件中,它实际上被变异了10次
#include <filename> 函数库文件包含.unix下搜索usr/include目录
#include "filename" 本地文件包含
宏的优点有两个
1,与类型无关
2,执行速度快于函数,不存在函数调用返回的开销
系统提供至少三个流,
标准输入,标准输出和标准错误.
名字分别为stdin,stdout,stderr.
r 读取
w 写入
a 添加
rb 二进制读取
wb 二进制写入
ab 二进制添加
a+ 打开更新,此流可读写
任何操作都是不可靠的,都有可能失败.所以要检查
volalite 关键字用于防止编译器自动优化
分享到:
相关推荐
《C和指针》读书笔记.pdf
你是直接操纵对象,还是用某种基于特殊语法的间接表示(例如C和C++里的指针)在操纵对象? 所有的这一切在java里都得到了简化。一切被视为对象,因此可采用单一固定的语法。尽管一切都“看作”对象,但操纵的标志符...
《C程序设计》读书笔记 第一章 概述 第二章 数据类型、运算符与表达式 第三章 最简单的c程序设计 第四章 逻辑运算和判断选取控制 第五章 循环控制 第六章 数组 第七章 函数 第八章 预编译处理 第...
嵌入式系统开发之道的读书笔记 ... 2、中断分为CPU自行产生的内部中断及由外围设备产生的外部中断。 3、*(volatile unsigned char*)0x300022&=0xfd; C语言用指针取地址里面的东西 asm("xld.w %r0,0x300022"); Asm...
读书笔记类型多种多样,有摘抄型的,有感想型的,有批注型的,有摘要型的……
(有些C头文件被转换为C++头文件,去掉扩展名,并在前面加c,如cmath) 2、名称空间——相当于Java中的package,using编译指令相当于Java中的import。头文件没有.h前缀时,类、函数和变量是C++编译器的标准组件,被...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。 :bookmark_tabs: 目录 :plus: C/C++...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 向issue 提出。此仓库引用于issue! 只面向初学者用于学习参考~ :bookmark_tabs: 目录 :plus: C/C++ ...
由于本人水平有限,仓库中的知识点有来自本人原创,读书笔记,书籍,博文等,非原创均已标明出处本仓库预先协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs:目录 :plus: C / C ++ const ...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :lollipop: 广告与打赏:个人...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。 :lollipop: 如果仓库内容对你有所...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :lollipop: 广告与打赏:个人...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 协议,转载请注明出处,不得用于商业目的。 :bookmark_tabs: 目录 :plus: C/...
这篇介绍了静态成员函数与静态成员变量,是我的读书笔记,我希望它够简短但又比较全面,起到复习的作用。如果有一些C++知识记不清楚了,它可以帮你很快回忆起来。 复习C语言的static关键字 (1)加在局部变量的前面...
由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 CC BY-NC-SA 4.0 协议,转载请注明出处。 :lollipop: 如果仓库内容对你有所...