在 main.c 中使用时,所有函数和结构都会引发 "implicit declaration of <function>" errors/warnings
All functions and structs raise "implicit declaration of <function>" errors/warnings when used in main.c
已提出的错误:
;
main.c:18:12: warning: implicit declaration of function ‘get_word’ [-Wimplicit-function-declaration]
word = get_word( &sentence );
main.c:18:12: warning: implicit declaration of function ‘get_word’ [-Wimplicit-function-declaration]
word = get_word( &sentence );
main.c:21:49: error: request for member ‘word’ in something not a structure or union
printf("Word in word_count_struct = %s\n",CS->word)
我的 main.c :
#include "bow.h"
int main(){
struct word_count_struct *CS;
char *sentence = "#The quick brown fox jumped over 23&%^24 the lazy dogs."; /* test sentence */
char *word; /* pointer to a word */
printf( "sentence = \"%s\"\n", sentence ); /* show the sentence */
while (*sentence) /* while sentence doesn't point to the '[=15=]' character at the end of the string */
{
word = get_word( &sentence ); /* this will allocate memory for a word */
printf( "word = \"%s\"; sentence = \"%s\"\n", word, sentence ); /* print out to see what's happening */
CS = new_word_count(word);
printf("Word in word_count_struct = %s\n",CS->word);
free(word); /* free the memory that was allocated in get_word */
}
return 0;
我的 bow.h (bow.c 包含所有 :
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#ifdef BOW_H
#define BOW_H
struct word_count_struct
{
char *word;
int count;
};
struct bag_struct
{
struct word_count_struct *bag;
int bag_size;
int total_words;
};
/* More functions */
#endif
生成文件:
bag: main.o bow.o bow.h
gcc -Wall -ansi -pedantic main.o bow.o -o bag
bow.o: bow.c bow.h
gcc -Wall -ansi -pedantic -c bow.c -o bow.o
main.o: main.c bow.h
gcc -Wall -ansi -pedantic -c main.c -o main.o
clean:
rm -i bag bow.o main.o
我完全不知道是什么导致了这些错误,我们将不胜感激。
您有 #ifdef BOW_H
未定义,因此 header 基本上是空白的。更改为 #ifndef
。
已提出的错误: ;
main.c:18:12: warning: implicit declaration of function ‘get_word’ [-Wimplicit-function-declaration]
word = get_word( &sentence );
main.c:18:12: warning: implicit declaration of function ‘get_word’ [-Wimplicit-function-declaration]
word = get_word( &sentence );
main.c:21:49: error: request for member ‘word’ in something not a structure or union
printf("Word in word_count_struct = %s\n",CS->word)
我的 main.c :
#include "bow.h"
int main(){
struct word_count_struct *CS;
char *sentence = "#The quick brown fox jumped over 23&%^24 the lazy dogs."; /* test sentence */
char *word; /* pointer to a word */
printf( "sentence = \"%s\"\n", sentence ); /* show the sentence */
while (*sentence) /* while sentence doesn't point to the '[=15=]' character at the end of the string */
{
word = get_word( &sentence ); /* this will allocate memory for a word */
printf( "word = \"%s\"; sentence = \"%s\"\n", word, sentence ); /* print out to see what's happening */
CS = new_word_count(word);
printf("Word in word_count_struct = %s\n",CS->word);
free(word); /* free the memory that was allocated in get_word */
}
return 0;
我的 bow.h (bow.c 包含所有 :
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#ifdef BOW_H
#define BOW_H
struct word_count_struct
{
char *word;
int count;
};
struct bag_struct
{
struct word_count_struct *bag;
int bag_size;
int total_words;
};
/* More functions */
#endif
生成文件:
bag: main.o bow.o bow.h
gcc -Wall -ansi -pedantic main.o bow.o -o bag
bow.o: bow.c bow.h
gcc -Wall -ansi -pedantic -c bow.c -o bow.o
main.o: main.c bow.h
gcc -Wall -ansi -pedantic -c main.c -o main.o
clean:
rm -i bag bow.o main.o
我完全不知道是什么导致了这些错误,我们将不胜感激。
您有 #ifdef BOW_H
未定义,因此 header 基本上是空白的。更改为 #ifndef
。