当前位置: 首页 > news >正文

三门峡做网站优化厦门网站制作阳哥

三门峡做网站优化,厦门网站制作阳哥,网站地图代码,保定网络公司网站目录 1. 头文件中的#ifndef / #define / #endif的作用是什么? 2. 内存分区:全局区、堆区、栈区、代码区简单描述? 2.1 代码区(Text Segment): 2.2 全局区(Data Segment)&…

目录

1.  头文件中的#ifndef / #define / #endif的作用是什么?

2.  内存分区:全局区、堆区、栈区、代码区简单描述?

2.1  代码区(Text Segment):

2.2  全局区(Data Segment):

2.3  堆区(Heap):

2.4  栈区(Stack):

3.  C语言各数据类型的取值范围?


1.  头文件中的#ifndef / #define / #endif的作用是什么?

#ifndef:用于判断指定的标识符是否已经被定义。如果该标识符未定义,则执行下面的代码块,否则跳过。

#ifndef MACRO_NAME// 如果没有定义 MACRO_NAME,则编译以下内容
#endif

#define:用于定义指定的标识符,通常用于定义宏。在条件编译中,一般用来定义一个标识符,以便在后面的代码中进行条件判断,通常用于定义一个标识符,用来标记某些代码块已经被处理过。通过定义宏来确保头文件只被包含一次。

#define MACRO_NAME

#endif:用于结束条件编译的代码块。

        三者常用写法:

#ifndef MY_HEADER_H  // 如果没有定义 MY_HEADER_H
#define MY_HEADER_H  // 定义 MY_HEADER_H,表示头文件已经包含// 头文件内容,如结构体、函数声明等#endif  // 结束条件编译块

工作原理:

第一次包含:

  •         当编译器处理一个头文件时,它遇到 #ifndef MY_HEADER_H。
  •         如果 MY_HEADER_H 没有被定义,则会进入条件编译块,并定义 MY_HEADER_H(通过 #define MY_HEADER_H)。
  •         然后,编译器继续编译头文件的内容。

第二次及之后的包含:

  •         如果该头文件在其他地方被再次包含,编译器会再次遇到 #ifndef MY_HEADER_H。
  •         由于宏 MY_HEADER_H 已经被定义,条件 #ifndef MY_HEADER_H 会失败,编译器跳过头文件的内容,不会重复定义和包含相同的内容。

2.  内存分区:全局区、堆区、栈区、代码区简单描述?

2.1  代码区(Text Segment)

作用:存放程序的机器指令,也就是程序的执行代码。

特点:是只读的,防止程序在运行时修改自己的指令。

           通常由操作系统在程序加载时分配,加载到内存中。

           大小固定,一般在程序编译时就确定。

2.2  全局区(Data Segment)

作用:存放程序中的全局变量、静态变量和常量。

特点已初始化的全局变量:如在程序中显式赋初值的全局变量,会存放在该区域。

           未初始化的全局变量:存放在一个叫做BSS(Block Started by Symbol)区的区域,程序启动时会自动初始化为零。

           全局变量在整个程序的生命周期内存在,直到程序结束。

           全局区在程序运行期间不会被改变大小。

2.3  堆区(Heap)

作用:用于动态分配内存。程序运行时可以向堆区申请内存空间(例如,通过 malloc、new 等动态内存分配函数)。

特点:内存的分配和释放由程序员管理(或者通过垃圾回收机制,如在某些高级语言中)。

           堆区内存大小可以动态变化,根据程序的需要增加或减少。

           如果没有及时释放堆区内存,可能导致内存泄漏

           堆区通常位于全局区和栈区之间。

2.4  栈区(Stack)

作用:存放局部变量、函数参数和函数调用时的返回地址等。

特点自动管理:栈的内存分配和释放由操作系统自动完成。函数调用时会自动分配栈空间,函数执行完后会自动释放。

           栈内存的分配遵循“后进先出”的原则(LIFO),即最后被压入栈的变量最先被弹出。

           栈区的大小通常有限,过多的函数调用可能会导致栈溢出

           栈区的内存是临时的,函数返回后,栈中的局部变量会被销毁。

简单来说:

  • 代码区:存储程序的代码,通常是只读的。
  • 全局区:存储全局变量和静态变量。
  • 堆区:用于动态分配内存,由程序员手动管理。
  • 栈区:存储局部变量和函数调用的相关信息,由操作系统自动管理。

3.  C语言各数据类型的取值范围?

关键字位数表示范围stdint关键字ST关键字
char8-128 ~ 127int8_ts8
unsigned char80 ~ 255uint8_tu8
short16-32768 ~ 32767int16_ts16
unsigned short160 ~ 65535uint16_tu16
int32-2147483648 ~ 2147483647int32_ts32
unsigned int320 ~ 4294967295uint32_tu32
long32-2147483648 ~ 2147483647
unsigned long320 ~ 4294967295
long long64-(2^64)/2 ~ (2^64)/2-1int64_t
unsigned long long640 ~ (2^64)-1uint64_t
float32-3.4e38 ~ 3.4e38
double64-1.7e308 ~ 1.7e308

千题千解·嵌入式工程师八股文详解_时光の尘的博客-CSDN博客

http://www.yayakq.cn/news/958619/

相关文章:

  • 网站建设及解析流程深圳高端网站定制公司
  • 鄂尔多斯教育网站入口组织建设一百年全文
  • 宁德蕉城城乡建设网站网站开发vs设计报告
  • 公司做阿里巴巴网站要多少钱网站开发技术是
  • 网站建设的整个过程怎么做营销策划方案
  • 西安长安区建设局网站建设 政务数据共享网站
  • 上海网站微信平台建设商业网站制作价格
  • 苏州制作公司网站的网站301是什么
  • 青海建设厅职称网站有什么搜图片的网站好
  • 潍坊网站建设解决方案湖南省郴州市天气
  • 有没有专门做外贸的网站湖南住房城乡建设部网站
  • 屏蔽网站接口js广告seo外包公司优化
  • 企业展厅图片郑州关键词seo
  • 研磨 东莞网站建设wordpress 电影 插件
  • seo专员是什么意思长春seo网站排名优化
  • 橙色网站模板没有版权的图片网站
  • 企业网站源码排行没有备案的网站怎么挂广告
  • 做网站空间商需要办什么手续wordpress文章页面模板
  • 做网站开发要注册标识标牌设计公司
  • 网站美化公司商务型企业网站建设
  • 动漫设计视频哈尔滨网络seo公司
  • 运动器材网站建设国内精自视频品线一区
  • 绵阳房产网站建设网站建设前景分析
  • wordpress新闻站自动采集器wordpress 更改插件目录
  • 软文广告经典案例200字苏州百度关键词优化
  • 网站开发文章知末网su模型免费下载
  • 如何建设下载网站个人建网站需要什么手续
  • 招聘网站开发策划方案wordpress电影怎么做
  • wordpress 亩搜索引擎优化实训报告
  • 达州达县网站建设源码网站建设教程