在 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