해결된 질문
작성
·
283
0
typedef bool(ITEM_SELECTOR)(Item* , int);
Item* FindItem(Item items[], int itemCount, ITEM_SELECTOR* selector, int value)
{
for (int i = 0; i < itemCount; i++)
{
Item* item = &items[i];
if (selector(item, value))
return item;
}
}
위 코드에서 typedef 부분을 없애고 한 번에 만들려고 하는데
Item* FindItem2(Item items[], int itemCount, bool (*selector)(Item* item, int value)){}
이렇게 만들면 동작하지 않고
Item* FindItem(Item items[], int itemCount, bool (*selector)(Item* item, int value), int value){}
int value를 따로 받아줘야 동작하는 이유가 있나요?
답변 1
1
bool (*selector)(Item* item, int value)
여기까지는 함수의 원형이랑 관련이 있는 것입니다.
Item* FindItem(Item items[], int itemCount, ITEM_SELECTOR* selector, int value)
비유해서 보면 저 부분이죠.
그러니 아직 아이템 밸류에 해당하는 int를 받아주는 곳이 없으니 에러가 나는 것입니다.
이해되었습니다!
늦은 시간에 빠른 답변 해주셔서 감사합니다!!