当我运行程序时
card.c:3:23:错误:取消引用指向不完全类型printf的指针(“%i”,攻击者->power);
C.主要:
#include <stdio.h>
#include "card.h"
int main(){
return 0;
}卡H:
#ifndef CARD_H_FILE
#define CARD_H_FILE
struct card_t {
char name[10];
int power, health, mana_cost;
};
int attack(struct card_t *, struct card_t *);
#endifC.卡:
int attack(struct card_t *attacker, struct card_t *defender){
printf("%i", attacker->power);
return 1;
}发布于 2014-03-28 13:14:25
除非您在发布代码时遗漏了代码,否则card.c不包括card.h,这意味着它对struct card_t或其成员(->power)一无所知。它也没有stdio.h,这意味着它也不知道printf()。
请记住,C编译器孤立地翻译源代码(.c)文件,它们不会连接它们。这意味着main.c中的包含对card.c完全不起作用。
发布于 2014-03-28 15:28:53
在文件card.h中包含card.c的内容。
card.h
#ifndef CARD_H_FILE
#define CARD_H_FILE
struct card_t {
char name[10];
int power, health, mana_cost;
};
int attack(struct card_t *attacker, struct card_t *defender){
printf("%i", attacker->power);
return 1;
}
#endifhttps://stackoverflow.com/questions/22713864
复制相似问题