请选择 进入手机版 | 继续访问电脑版
快捷导航
0 60

上周宁哥的课堂总结(不包含代码)

唐郑行 于 2018-9-19 15:19 发表在 [技术分享] [复制链接]

注册后可查看大图哦

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
void* 表示未确定类型的指针,void * 可以指向任何类型的数据
关键词:extern:是声明,不是定义。全局变量。一个 .c 表示一个文件,一般会在其它文件中用到。externstatic不能同时修饰一个变量
作用一: 只在头文件中声明,不定义,当声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块或其它模块中使用,若B模块引用A模块中定义的全局变量或函数,只需包含A模块的头文件,因为B会在连接时从模块A生成的目标代码中找到此函数。
作用二: 当与C一起连用时,如:extern”C”voidfun(int a,int b); 按照C的规则去翻译fun函数
关键词:一个应用程序的编译步骤:1、编译,由编译器将C源代码(.cpp)转变成汇编代码(.s2、汇编,由汇编器将汇编代码(.s)转变为目标代码(.o3、链接,由链接器将代码在执行过程用到的其他目标代码和库文件链接成为一个可执行程序也就是目标程序。
任何类型的指针都是4个字节(32位系统)
stdio.h((void *)(0))
内存分配方式:1、在静态存储区域中进行分配   例:全部变量,static变量
              2、在栈中进行分配  例:在执行函数时,函数内局部变量的存储单元可以在栈上创建,系统自动释放
              3、在堆中分配(也叫动态内存分配)用malloc等函数申请任意多少的内存,用free释放。不会因为函数的调用而结束。
malloc:堆里分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址。如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。
malloc申请内存块free函数释放内存块
静态作用域查找的是距离当前作用域最近的外层作用域中同名标识符的声明。
动态作用域则是查找最近的活动记录中的同名标识符声明。
c语言
堆:一段永久空间声明,周期随着main函数的结束而结束。凡是用malloc函数建立的都是在堆里,堆里存放的都是实体,不能随时释放。队列优先,先进先出
栈:一段临时空间,存储的都是局部变量,凡是定义在方法中的都是局部变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。先进后出,动态
栈和堆的联系通过地址。
关键词:static的四种用法,表示静态的全局变量,不被其它文件所共享。分配内存的时候, 存储在静态区,不存储在栈上面,static修饰的全局变量声明与定义同时进行,动态分配,空间复用。自动释放。
C语言:应用于普通变量和函数,不涉及类。
堆,用一块,耗一块。不自动释放。
线程安全:多个线程并发同一段代码,不会出现不同结果,
可重入安全函数:(1)不使用全局变量或静态变量;
(2)不使用用malloc或者new开辟出的空间;
(3)不调用不可重入函数;
(4)不返回静态或全局数据,所有数据都有函数的调用者提供;
(5)使用本地数据,或者通过制作全局数据的本地拷贝来保护全局数据;

Connecting & Messaging from Any.

共 0 个关于本帖的回复 最后回复于 2018-9-19 15:19

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐板块

精彩推荐

热门排行

明星用户

手机版|小黑屋|AnyMSG ( ©AnyMSG 2009 - 2017 · ICP备16009991号 )

GMT+8, 2019-2-18 20:14