根据我的理解,记忆有四个部分。
堆栈段将存储在函数内声明的所有局部变量。动态创建的变量将进入堆内。初始化的全局变量将在数据段内部 - BSS区域。 非初始化全局变量将在数据段内 - 非BSS区域。所有const变量&宏将进入代码区域。
我们可以指示编译器使用#pragma。
将特定变量存储在内存中的特定位置我不知道const指针和指针存储在哪里。它在数据段内吗?
请让我知道我的理解是否正确?
我有代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
enum color{
RED,
GREEN,
BLUE
};
int a;
int b=5;
static int c;
static int d=10;
extern int e;
const int f;
const int g = 15;
const int *ptr1;
int *ptr2;
int main(void) {
// your code goes here
int h;
int i=20;
static int j;
static int k=25;
const int l;
const int m = 30;
int *ptr3;
const int *ptr4;
return 0;
}
在这段代码中,这些变量a - m将存储在哪里?