zoukankan      html  css  js  c++  java
  • 初始化全局变量实例说明C语言中初始化和未初始化的全局变量所在不同的段

    本文是一篇关于初始化全局变量的帖子

        实例说明C语言中初始化和未初始化的全局变量地点不同的段

        

    一个程序:

        

    Makefile:
    objs := bss.o
    
    all: bss
    bss: $(objs)
    	gcc -o bss_elf bss.c
    	objdump -D bss_elf > bss.dis
    
    clean:
    	rm -f bss_elf bss.dis *.o

        主程序:

    /*
     * bss.c
     *
     *  Created on: 2013-5-16
     *      Author: root
     */
    
    int g_val;
    
    void changeVal()
    {
    	int  a;
    	a = 1;
    	g_val = 4;
    }
    
    int main(void)
    {
    	changeVal();
    	return 0;
    }

        

    下边是我根据不同的g_val的值进行编译,查看 bss.dis来看地点不同的段:

        


        

    初始化和全局变量

        


        每日一道理
    微笑,是春天里的一丝新绿,是秋日里的一缕阳光,是骄阳下的一片浓荫,是冬雪中的一株梅红……微笑着去面对吧,你会感到人生是那样的温馨与甜蜜!

        


        

    初始化和全局变量

        


        


        

    初始化和全局变量

        


        

             通过实现可以精确的说明: .bss段是放未初始化或者初始化为0的全局变量.data段是寄存初始了且不为零的全局变量。bss段中的值全体赋为了0。程序中就不存在没有初始化的全局变量了,你不初始化,bss段也会帮你初始化为0。

        


        

             这样做一次实验超过看好多次书!

        

        

        

        

        

        

    文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

  • 相关阅读:
    类的静态成员
    QT上的Mysql编程
    将博客搬至CSDN
    ARM开发板系统移植-----rootfs的制作
    ARM开发板系统移植-----kernel的编译
    ARM开发板系统移植-----u-boot的编译
    Linux 消息队列编程
    Linux 共享内存编程
    Linux 信号量同步编程
    Linux 信号量互斥编程
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3084563.html
Copyright © 2011-2022 走看看