• 关于c语言变量的内存分布测试程序


    #include <stdio.h>
    #include <stdlib.h>
    
    const int const_global = 0; // 常全局变量
    int init_global = 0; // 初始化全局变量
    int uninit_global; // 未初始化全局变量
    
    int main (int argc, char* argv[]) {
        const static int const_static = 0; // 常静态变量
        static int init_static = 0; // 初始化静态变量
        static int uninit_static; // 未初始化静态变量
    
        const int const_local = 0; // 常局部变量
        int prev_local; // 前局部变量
        int next_local; // 后局部变量
    
        int* prev_heap = malloc (sizeof (int)); // 前堆变量
        int* next_heap = malloc (sizeof (int)); // 后堆变量
    
        const char* literal = "literal"; // 字面值常量
        extern char** environ; // 环境变量
    
        printf ("---- 命令行参数与环境变量 ---- <高>
    ");
        printf ("         环境变量:%p
    ", environ);
        printf ("       命令行参数:%p
    ", argv);
        printf ("-------------- 栈 ------------
    ");
        printf ("       常局部变量:%p
    ", &const_local);
        printf ("       前局部变量:%p
    ", &prev_local);
        printf ("       后局部变量:%p
    ", &next_local);
        printf ("-------------- 堆 ------------
    ");
        printf ("         后堆变量:%p
    ", next_heap);
        printf ("         前堆变量:%p
    ", prev_heap);
        printf ("------------- BSS ------------
    ");
        printf (" 未初始化全局变量:%p
    ", &uninit_global);
        printf (" 未初始化静态变量:%p
    ", &uninit_static);
        printf ("------------ 数据 ------------
    ");
        printf ("   初始化静态变量:%p
    ", &init_static);
        printf ("   初始化全局变量:%p
    ", &init_global);
        printf ("------------ 代码 ------------
    ");
        printf ("       常静态变量:%p
    ", &const_static);
        printf ("       字面值常量:%p
    ", literal);
        printf ("       常全局变量:%p
    ", &const_global);
        printf ("             函数:%p
    ", main);
        printf ("------------------------------ <低>
    ");
    
        printf ("查看/proc/%u/maps,按<回车>退出...", getpid ());
        getchar ();
    
        return 0;
    }
  • 相关阅读:
    市场规模的估算
    C#中的线程(一)入门 转载
    2.设计模式-Abstract Factory 抽象工厂模式
    1.设计模式
    Microsoft.Jet.OLEDB.4.0读取EXCEL数据
    转载--加盐密码哈希:如何正确使用
    ragel学习资源整合
    开源库xlslib跨平台编译
    WPF开源框架以及经典博客
    (转载)值得推荐的C/C++框架和库 (真的很强大)
  • 原文地址:https://www.cnblogs.com/yihujiu/p/6277904.html
Copyright © 2020-2023  润新知