首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码错误结构

代码错误结构
EN

Stack Overflow用户
提问于 2014-03-28 13:11:37
回答 2查看 67关注 0票数 1

当我运行程序时

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

C.主要:

代码语言:javascript
复制
#include <stdio.h>
#include "card.h"
int main(){
    return 0; 
}

卡H:

代码语言:javascript
复制
#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 *);
#endif

C.卡:

代码语言:javascript
复制
int attack(struct card_t *attacker, struct card_t *defender){
    printf("%i", attacker->power);
    return 1;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-28 13:14:25

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

请记住,C编译器孤立地翻译源代码(.c)文件,它们不会连接它们。这意味着main.c中的包含对card.c完全不起作用。

票数 3
EN

Stack Overflow用户

发布于 2014-03-28 15:28:53

在文件card.h中包含card.c的内容。

card.h

代码语言:javascript
复制
#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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22713864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档