Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 代码错误结构_C_Struct - Fatal编程技术网

C 代码错误结构

C 代码错误结构,c,struct,C,Struct,当我运行程序时,我得到 card.c:3:23:错误:取消对不完整类型的指针的引用 printf(“%i”,攻击者->电源) 主要条款c: #include <stdio.h> #include "card.h" int main(){ return 0; } 卡c: int attack(struct card_t *attacker, struct card_t *defender){ printf("%i", attacker->power);

当我运行程序时,我得到

card.c:3:23:错误:取消对不完整类型的指针的引用 printf(“%i”,攻击者->电源)

主要条款c:

#include <stdio.h>
#include "card.h"
int main(){
    return 0; 
}
卡c:

int attack(struct card_t *attacker, struct card_t *defender){
    printf("%i", attacker->power);
    return 1;
}

除非您在发布代码时有所遗漏,
card.c
不包括
card.h
,这意味着它对
struct card\t
或其成员(
->power
)一无所知。它也不包含
stdio.h
,这意味着它也不知道
printf()

请记住,C编译器独立地翻译源(
.C
)文件,而不是连接它们。这意味着
main.c
中的includes对
card.c

不做任何操作,而是将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;
}
#endif

可能缺少
#包括“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;
}
#endif