0
#include <stdio.h>
#define MAXLINE 1000
int max;
char line[MAXLINE];
char longest[MAXLINE];
int getline(void);
void copy(void);
int main(){
int len;
extern int max;
extern char longest[];
max = 0;
while((len = getline()) > 0){
if(len > max){
max = len;
copy();
}
}
if(max > 0)
printf("%s", longest);
return 0;
}
int getline(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++;
}
に表示されますエラーは、次のとおりです。は少なすぎる引数が呼び出しを機能するために取得し、競合タイプC
longlineextern.c:9:5: error: conflicting types for 'getline'
int getline(void);
^
/usr/include/stdio.h:448:9: note: previous declaration is here
ssize_t getline(char ** __restrict __linep, size_t * __restrict __lineca...
^
longlineextern.c:18:24: error: too few arguments to function call, expected 3,
have 0
while((len = getline()) > 0){
~~~~~~~^
/usr/include/stdio.h:448:1: note: 'getline' declared here
ssize_t getline(char ** __restrict __linep, size_t * __restrict __lineca...
^
longlineextern.c:29:5: error: conflicting types for 'getline'
int getline(void){
^
/usr/include/stdio.h:448:9: note: previous declaration is here
ssize_t getline(char ** __restrict __linep, size_t * __restrict __lineca...
^
3 errors generated.
これは、他のプログラムに起こっていると私は私が正しいに渡しています理由として見ることができません引数の量とそれらは正しいタイプです。
このプログラムは、Cプログラミング言語の本から正確にコピーされているため、正しいはずです。
は、それはすべてのヘルプは大幅にすでにstdio.h
で定義されたgetline
機能があるので、あなたはこのエラーを取得する おかげ
'getline'が使用しているライブラリに既に存在するため、名前の競合が発生しています。 'my_getline'などの別の名前を使用してください。 – BLUEPIXY
MSVCの' stdio.h'には 'getline'がありません。それはきれいにコンパイルされます。 –