[英]All functions and structs raise “implicit declaration of <function>” errors/warnings when used in main.c
Errors that have been raised: ; 出现的错误:
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)
My main.c : 我的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 '\0' 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;
my bow.h (bow.c contains all the : 我的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
makefile: 生成文件:
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
I have absolutely no idea what is causing these errors, any help would be appreciated. 我完全不知道是什么导致了这些错误,我们将不胜感激。
You have #ifdef BOW_H
which isn't defined so the header is basically blank. 您没有
#ifdef BOW_H
,因此标头基本上为空。 Change to #ifndef
. 更改为
#ifndef
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.