关于extern声明后,变量值和定义值不一样的问题及解决办法

  • Post author:
  • Post category:其他


  • 软件:vc6.0

  • 语言:c

  • 问题描述:

    在main文件定义了一个全局变量

    int g_score=0;//分数


    在另外一个文件中声明

    extern int g_score


    希望在含有声明

    extern int g_score

    的这个文件中对g_score进行

    g_score+=10

    操作

    结果发现第一次走这个语句打印出来的是11而不是10!

    进一步打印+=10之前的g_score,发现

    竟然等于1而不是主文件定义的0!

  • 解决方法:调换定义和声明,即在要操作使用g_score的这个文件中定义全局

    int g_score=0;//分数

    ,而在main文件中声明,即恢复正常。

这是一个奇怪问题,或者说是由于知识能力不足难以给出解释的问题和解决方法,如果知道原因,欢迎交流~

这是本专栏的第一篇!可惜可能快要开学了!以后随缘更新~



版权声明:本文为z5z5z5z56原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。