Ho copiato questo programma di esempio da un libro che sto studiando, il problema è che dev-c non me lo compila, trova i seguenti errori nella funzione copy:
c\1\externlongestline\externlongestline.cpp In function 'void copy()':
41 15 c\1\externlongestline\externlongestline.cpp [Error] new declaration 'void copy()'
7 6 c\1\externlongestline\externlongestline.cpp [Error] ambiguates old declaration 'char copy()'
44 18 c\1\externlongestline\externlongestline.cpp [Error] type mismatch with previous external decl of 'char line []' [-fpermissive]
4 6 c\1\externlongestline\externlongestline.cpp [Error] previous external decl of 'char line [1000]' [-fpermissive]
44 29 c\1\externlongestline\externlongestline.cpp [Error] type mismatch with previous external decl of 'char longest []' [-fpermissive]
5 6 c\1\externlongestline\externlongestline.cpp [Error] previous external decl of 'char longest [1000]' [-fpermissive]
ecco il programma:
#include <stdio.h>
#define MAXLINE 1000 /* lunghezza massima di una linea */
int max; /* massima lunghezza trovata sinora */
char line[MAXLINE]; /* linea di input corrente */
char longest[MAXLINE]; /* linea più lunga salvata qui */
int getline(void);
char copy(void);
/* stampa la linea di input più lunga; seconda versione */
main()
{
int len;
extern int max;
extern char longest[MAXLINE];
max=0;
while ((len=getline())>0)
if (len>max)
{
max=len;
copy();
}
if (max>0) /* c’era almeno una linea in input */
printf("%s", longest);
return 0;
}
/* getline: seconda versione */
int getline(void)
{
int c, i;
extern char line[MAXLINE];
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;
}
/* copy: seconda versione */
void copy(void)
{
int i;
extern char line[], longest[];
i=0;
while ((longest[i]=line[i])!='\0')
++i;
}
dov'è l'errore?