标题:问一个关于extern的使用问题!
取消只看楼主
lxsbupt
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-11-23
 问题点数:0 回复次数:0 
问一个关于extern的使用问题!
[root@localhost parta]# cat parta.c
#include <stdio.h>

void report_count();
void acculate(int k);

int count=0;    //具有外部作用域的静态变量;

int main(void)
{
        int value;         //自动变量;
        register int i;    //寄存器变量;

        printf("Enter a positive integer(0 to quit):");
        while(scanf("%d",&value)==1&& value>0)
        {
                ++count;
                for(i=value; i>=0; --i)
                {
                        acculate(i);
                }
                printf("Enter a positive integer(0 to quit):");
        }

        report_count();
        return 0;
}

void report_count()
{
        printf("Loop executed %d times\n",count);
}

[root@localhost parta]# cat partb.c
#include <stdio.h>

extern int count;           //外部变量的引用声明;
static int total=0;         //具有内部作用域的静态变量;

void acculate(int k)
{
        static int subtotal=0;  //具有代码块作用域的静态变量;

        if(k<=0)
        {
                printf("Loop cycle: %d\n",count);
                printf("subtotal: %d;total: %d\n",subtotal,total);
        //      subtotal=0;
        }
        else
        {
                total+=k;
                subtotal+=k;
        }
}
在partb.c的第三行
extern int count;           //外部变量的引用声明;
我把extern去掉之后,运行结果和有extern是一样的,这是为什么阿???
搜索更多相关主题的帖子: extern 
2008-01-26 11:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-198787-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.527168 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved