C語言外度變量

下面的例子將兩個通用的函數給特化了,這種情況下不應該使用外部變量,僅僅作爲說明:

 

#include<stdio.h>

#define MAXLINE 1000

int max;
char line[MAXLINE];
char longest[MAXLINE];

int getxline();
void copy();

int main()
{
    int len;
    extern int max;
    extern char longest[];
   
    max = 0;
    while((len = getxline()) > 0)
    {
        if(len > max)
        {
            max = len;
            copy();
        }
    }
   
    if(max > 0)
        printf("%s", longest);
    return 0;
}


int getxline(void)
{
    int c, i;
    extern char line[];
    for(i = 0; i < MAXLINE - 1 && (c=getchar()) != EOF && c != '/n'; ++i)
        line[i] = c;
    if(c == '/n')
    {
        line[i] = c;
        ++i;
    }
    line[i] = '/0';
    return i;
}

void copy(void)
{
    int i;
    extern char line[], longest[];
    i = 0;
    while((longest[i] = line[i]) != '/0')
        ++i;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章