栈区,堆区,数据区,宏函数这些名词都是怎么理解的?

最近学c语言 有的知识点看了但不是很明确 有没有人讲解下什么是栈区,堆区和数据区 还有该如何理解宏函数 ??

栈区、堆区、数据区以及宏函数
1.栈区:不返回局部变量的地址,因为局部变量在函数执行之后就被释放了,我们人为没有权限去操作释放后的内存;
2.堆区:在堆区开辟的数据,必须手动开辟,手动释放。
如果在主调函数中没有给指针分配内存,那么被调函数中就需要利用高级指针给主调函数中指针分配内存;
3.数据区:数据区中存的是静态变量、全局变量和常量。
4.宏函数:在一定程度上宏函数会比普通函数效率更高,因为普通函数会有入栈和出栈的时间开销,在一般的使用场景中将比较频繁用到的且短小的函数可以写为宏函数,直接跑源码的作用,有着以空间换时间的特点。

https://blog.csdn.net/AuroraSmith/article/details/126647527

栈区是指程序运行时,用于存储函数调用时的局部变量、函数参数等的一块内存空间。
堆区是指程序运行时,用于动态分配内存的一块内存空间。
数据区是指程序运行时,用于存储全局变量、静态变量等的一块内存空间。
宏函数是指在程序编译时,将宏定义替换为相应的代码段的一种函数。