c语言小知识整理

知识点

1、如果#define定义在某个.c文件中,那么其他文件就用不了了,只有定义在.h中,其他文件引用这个.h,那么才能使用这个#define
static也是同样的,只能在当前.c文件中使用

堆栈

参考资料1
1、数据结构的堆(heap)栈(stack)和内存中的堆栈是不同的
2、在 C 语言中,内存分配方式不外乎有如下三种形式:

  • 从静态存储区域分配:它是由编译器自动分配和释放的,即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,直到整个程序运行结束时才被释放,如全局变量static 变量还有一个字符串常量(整个C只有这三个是放在静态存储区中的)。
  • 在栈上分配:它同样也是由编译器自动分配和释放的,即在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元将被自动释放。需要注意的是,栈内存分配运算内置于处理器的指令集中,它的运行效率一般很高,但是分配的内存容量有限。
  • 从堆(heap)上分配:也被称为动态内存分配,它是由程序员手动完成申请和释放的。即程序在运行的时候由程序员使用内存分配函数(如 malloc 函数)来申请任意多少的内存,使用完之后再由程序员自己负责使用内存

猜你喜欢

转载自blog.csdn.net/chengcao123/article/details/121242381