C语言里面那些你必须知道的常用关键字(详细讲解) 您所在的位置:网站首页 c语言声明常量的关键字 C语言里面那些你必须知道的常用关键字(详细讲解)

C语言里面那些你必须知道的常用关键字(详细讲解)

2023-06-25 11:26| 来源: 网络整理| 查看: 265

前言

  哈喽,各位铁汁们好啊!✨今天来给大家带来的是C语言中我们常用的关键字静态static的详细讲解和typedef 、#define定义常量和宏。   既然是详解想必大家必定是想学一些平常学不到的东西吧!这里博主给大家详细讲解static修饰的变量在内存重视如何存储的,顺带给大家讲一下C/C++中的内存大致分为几个区域是如何存储的!废话不说了上干货

在这里插入图片描述

章节目录 前言序言1. C/C++中内存大致分的三个区域2. 关键字static静态局部变量静态局部变量的作用域和生命周期 静态全局变量静态函数 #define 定义常量和宏#define 定义常量#define 定义宏那么宏是怎么调用的呢?和函数有什么区别嘞? 关键字 typedef总结

序言 1. C/C++中内存大致分的三个区域 栈区(stack):由编译器自动分配释放。     存放 :局部变量、形参、返回值。堆区 (heap): 由程序员分配内存和释放。   调用函数 :malloc() free()等。静态区 :通常是用于那些在编译期间就能确定存储大小的变量的存储区,全局变量和 静态变量。

在这里插入图片描述

2. 关键字static

在C语言中:

static是用来修饰变量和函数的

1. 修饰局部变量-称为静态局部变量 2. 修饰全局变量-称为静态全局变量 3. 修饰函数-称为静态函数 静态局部变量

示例:

大家来来看这段代码

在这里插入图片描述

局部变量 a a a,在没有static修饰之前局部变量a是存放在栈区的。所以每次出局部范围就销毁(把空间还给操作系统)。然后,调用时重新创建初始化。那我们把局部变量a加上static关键字修饰成静态局部变量,会怎么样呢? //static 修饰局部变量的时候 //本来一个局部变量是存放在栈区的,如果被static修饰就存储到静态区了 //static 修饰局部变量改变了变量的存储类型(位置),使得这个静态变量的生命周期变长了,直到程序结束才结束 //但是作用域不变 void test() { static int a = 5;//静态变量的 a++; printf("%d ", a); } int main() { int i = 0; while (i int arr[M] = {0};//100*4 = 400 int m = M; printf("%d\n", sizeof(arr));//400 printf("%d\n", M); printf("%d\n", m); return 0; }

这里#define 定义的是M这个标识符常量

以后我们在碰到M的时候编译器在编译期间,就会自动替换为常量100。通常在定义数组时使用或者重复值时。 #define 定义宏

我们来看一下宏是怎么定义的: 在这里插入图片描述 和定义函数非常相识 在这里插入图片描述 但是宏没有函数的返回类型和参数类型 还是很不一样的,宏的实现体一般都是表达式

那么宏是怎么调用的呢?和函数有什么区别嘞? //宏 #define ADD(x, y) ((x)+(y)) //函数 int Add(int x, int y) { return x + y; } int main() { int a = 10; int b = 20; int c = ADD(a, b); //int c = (a)+(b); printf("%d\n", c); int d = Add(a, b); printf("%d\n", d); return 0; }

我们可以看到宏的调用也和函数产不多 但是

int c = ADD(a, b);这段代码调用宏的本质是替换

int c = (a)+(b);在编译的时候就把ADD这个宏替换成这样 而函数调用是

把实参传到函数形参里面进行计算,然后在返回值

关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。 示例:

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名 typedef unsigned int uint_32; int main() { //观察num1和num2,这两个变量的类型是一样的 unsigned int num1 = 0; uint_32 num2 = 0; return 0; } 总结

好了今天主要是带大家认识关键字 static 和 #define typedef 总结一下今天学了:   关键字static   关键字static修饰变量的作用域变化   #define定义的宏和常量   关键字typedef

不知道大家掌握了没有,希望对各位铁汁有用呢! 看到这里了还不给博主扣个点赞加收藏! 💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖 拜托拜托这个真的很重要! 你们的点赞就是博主更新最大的动力! 有问题可以评论或者私信呢秒回哦。 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有