为什么我一加函数声明就报错?
报错时是“conflicting types for getInput”不加申明就正常了。。。why?{:10_284:}
#include <stdio.h>
#include <stdlib.h>
//void getInput(struct Book*book);
void getInput(struct Book*book);//一加函数声明就报错
struct Date
{
int year;
int month;
int day;
};
struct Book
{
char name;
char title;
float price;
struct Date date;
};
void getInput(struct Book*book)
{
printf("请输入书名:");
scanf("%s",book->title);
printf("请输入姓名:");
scanf("%s",book->name);
printf("请输入售价:");
scanf("%f",&book->price);
printf("请输入日期:");
scanf("%d%d%d",&book->date.year,&book->date.month,&book->date.day);
//
}
void printBook(struct Book book)//将结构体变量 值传递 给指针会使开销变大。
{
printf("name:%s\n",book.name);
printf("title:%s\n",book.title);
printf("price:%f\n",book.price);
printf("date:%d%d%d\n",book.date.year,book.date.month,book.date.day);
}
int main(void) {
struct Book b1,b2;
printf("请输入第一本书的信息》》》\n");
getInput(&b1);
putchar('\n');
printf("请输入第二本书的信息》》》\n");
getInput(&b2);
putchar('\n');
printf("你的录入:\n");
printBook(b1);
printBook(b2);
return 0;
}
代码顺序问题。自己调整下。
既然都是在main前面,就没必要在声明一下。 你还没声明Book结构体呢,编译器不知道Book是什么 声明写在结构体后面 我用 VC++6.0 编译,没有出现告警,运行也是正常的 lhgzbxhz 发表于 2020-9-26 20:05
你还没声明Book结构体呢,编译器不知道Book是什么
{:10_279:}妙啊
页:
[1]