2016-11-05 6 views
0
#include <stdio.h> 
#include "InventoryManager.h" 

void displayInventory(const struct Item items[], const int size) 
{ 
printf("\n\n"); 
printf("Inventory\n"); 
printf("=========================================\n"); 
printf("Sku   Price  Quanity\n"); 
int index = 0; 
for (index = 0; index < size; index++) 
{ 
    printf("%-10.0d %-10.2f %-10d\n", items[index].sku, items[index].price, items[index].quantity); 
} 
printf("=========================================\n"); 
} 

배열 내에서 구조 값에 액세스하려고하면 "항목"아래에 빨간색 밑줄이 표시됩니다.값으로 함수에 전달 된 구조체 배열의 멤버에 어떻게 액세스합니까?

inventoryManger.h, inventoryManager.c, shopping_lab_2.c ... 파일이 3 개 있습니다. Item이라는 구조체가 shopping_lab_2.c에서 작성되었으며 스택 오버플로에 표시되는 기능은 inventoryManager.c에서 수행됩니다.

+0

은'구조체 Item'의 정의처럼 보이는 존재하지 않는 프로그램은 아래의 오류 또는 경고없이 작동합니다. 이 파일 또는이 파일에 포함되어있는 파일입니까? –

+0

세 개의 파일 인 inventoryManger.h, inventoryManager.c, shopping_lab_2.c ... Item이라는 구조체가 shopping_lab_2.c에서 작성되었으며 stack overflow에서 볼 수있는 함수가 inventoryManager.c에서 작성되었습니다. – user3134679

+0

사용 된 파일에서 구조 정의를 사용할 수 있어야합니다. 여러 개의 .c 파일에서 사용되는 경우 정의를 .h 파일에 넣고 .c 파일에 포함해야합니다. –

답변

0

나는 당신이 어떻게 당신의 기능을 부르는 지 모르겠습니다.

struct Item{ 
int sku; 
float price; 
int quantity; 
}; 

void displayInventory(const struct Item items[], const int size) 
{ 
printf("\n\n"); 
printf("Inventory\n"); 
printf("=========================================\n"); 
printf("Sku   Price  Quanity\n"); 
int index = 0; 
for (index = 0; index < size; index++) 
{ 
    printf("%-10.0d %-10.2f %-10d\n", items[index].sku, items[index].price, items[index].quantity); 
} 
printf("=========================================\n"); 
} 

int main() 
{ 
Item items[2] = {1, 1.1, 10, 2, 2.2, 20 }; // initialization 
displayInventory(items, 2); 
return 0; 
} 

출력 :

Inventory 
========================================= 
Sku   Price  Quanity 
1   1.10  10   
2   2.20  20   
=========================================