C - 按值传递结构+成员

时间:2014-11-23 22:42:37

标签: c structure argument-passing

我的问题似乎总是与使用函数有关。它仍然让我困惑!在这本教科书练习中,我被要求按值传递结构,然后调整它并通过引用传递。最初我设计了代码,以便在main中完成所有工作。现在我正在路过价值。所以我添加了新功能,我想我正确地传递了结构,但是我收到了错误 void function1(struct Inventory inv){告诉我参数1(inv)的类型不完整。请帮忙!

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void function1(struct Inventory inv);

struct Inventory{
    char name[20];
    int number;
    float price;
    float total;
} 

void main(){

    items;

    void function1(items);

    float total = items.number*items.price;
    printf("Item\tNumber\tPrice\tTotal\tAddress of number\n");
    printf("%s\t%d\t%.2f\t%.2f\t%X\n\n",items.name,items.number,items.price,total,&items.number);

    getch();
}

void function1(struct Inventory inv) {

    printf("Enter the name of the item: ");
    scanf("%s", inv.name);

    printf("Enter the number of items: ");
    scanf("%d", &inv.number);

    printf("Enter the price of each item: ");
    scanf("%f", &inv.price);
}

1 个答案:

答案 0 :(得分:1)

在函数原型中使用之前,必须先定义结构。

struct Inventory{
char name[20];
int number;
float price;
float total;
}items;

void function1(struct Inventory inv);