C语言深度剖析2.0

简介: static修饰局部变量 :更改局部变量的生命周期(临时变量->全局生命周期 )但是作用域不变还是只在本代码块内有效

static


多文件工程 为啥要有头文件?


源文件之间彼此想使用对方的变量或函数时必须在每个文件前声明


a36d051a43184005b36100fac32e3a28.png


单纯使用源文件,组织项目结构时,项目越大越复杂的时候,维护成本会越高!


所以我们把所有常使用的函数或变量放在一个文件里,这样就只用声明一次


因此为了减少大型项目的维护成本问题,诞生了头文件的说法【.h头文件】


一般头文件与源文件同名 但源文件会比头文件多一个,用来放main函数


.c文件里放定义 .h文件里放声明


多文件项目里头文件被多个源文件包含


如果头文件被重复包含问题 ?—>在头文件第一行写 #pragma once


当我们不想变量或函数被其他文件调用时用static


static修饰全局变量:该变量只在本文件内被访问不能被外部文件访问


static修饰函数:该函数只能在本文件中访问不能在其他文件中被访问


static项目维护,提供安全保障 限制被修饰者的作用域


static修饰局部变量 :更改局部变量的生命周期(临时变量->全局生命周期 )但是作用域不变还是只在本代码块内有效


972002dd3f7b4fe4953b1bd97d4281ae.png


i在fun中并没有被释放


为什么全局变量和函数要跨文件:有一定规模的项目,一定是多文件的,多个文件之间后续一定要进行数据“交互”如果不能跨文件,“交互”操作繁琐的成本较高


C语言地址空间【操作系统 进程地址空间】


aee9feb8fe824df393677e3948827d80.jpg


局部变量在栈区开辟


sizeof


求特定类型开辟空间的大小


9b9efab651b5490ab4f718ab57553b11.png

a39798cc7fb64eb3b9feaa022d727ee4.png


内置类型:C语言本身定义好的


5dd413d973f541828ded5534e472f001.png


定义变量的本质:在内存中开辟一块空间,用来保存数据。(保存数据才是关键)


文章末尾了!        勿忘三连        下期见!

相关文章
|
6月前
|
存储 C语言 C++
C语言------------指针笔试题目深度剖析
C语言------------指针笔试题目深度剖析
44 1
|
6月前
|
存储 编译器 C语言
C语言难?深度剖析第一段C语言代码—带你快速入门C语言
C语言难?深度剖析第一段C语言代码—带你快速入门C语言
81 0
|
6月前
|
存储 安全 C语言
深度剖析c语言程序 -- 函数栈帧的创建和销毁(纯肝货)-2
深度剖析c语言程序 -- 函数栈帧的创建和销毁(纯肝货)-2
|
6月前
|
存储 编译器 C语言
深度剖析c语言程序 -- 函数栈帧的创建和销毁(纯肝货)-1
深度剖析c语言程序 -- 函数栈帧的创建和销毁(纯肝货)-1
|
存储 小程序 编译器
C语言进阶第一课 -----------深度剖析数据在内存中的存储1
C语言进阶第一课 -----------深度剖析数据在内存中的存储
221 1
|
存储 C语言
C语言进阶第一课 -----------深度剖析数据在内存中的存储2
C语言进阶第一课 -----------深度剖析数据在内存中的存储
|
存储 算法 C语言
C语言深度剖析指针
C语言深度剖析指针
64 0
|
6月前
|
存储 小程序 编译器
c语言内功修炼--深度剖析数据的存储
c语言内功修炼--深度剖析数据的存储
|
6月前
|
存储 C语言
C语言结构体深度剖析
C语言结构体深度剖析
|
6月前
|
存储 小程序 编译器
C语言进阶—深度剖析数据在内存中的存储
C语言进阶—深度剖析数据在内存中的存储