我知道可以将结构作为参数传递等。
但是是否可以预设参数,因此只能传递特定的结构项:
struct inventory* searchForItem(struct stockItem.componentType code){
我得到:错误:预期&#39 ;;' ,','在令牌之前
编辑:
typedef struct stockItem {
char *componentType;
char *stockCode;
int numOfItems;
int price;
} stockItem;
答案 0 :(得分:2)
该组件的类型为char *
,因此只需将其作为参数的类型。
struct inventory* searchForItem(char *code){
如果您想使类型更严格,请为相关字段创建一个typedef:
typedef char * stockItem_componentType;
typedef struct stockItem {
stockItem_componentType componentType;
char *stockCode;
int numOfItems;
int price;
} stockItem;
struct inventory* searchForItem(stockItem_componentType code){
请注意,这会隐藏typedef
后面的指针,不建议这样做。然后,阅读你的代码(包括你自己)的人不会仅仅通过查看它就知道它是一个指针,这会导致混乱。
答案 1 :(得分:2)
(由于对其他答案的评论过于局限)
首先为componentType
定义一个新类型,如下所示:
typedef char *stockItem_componentType; // Naming subject to conventions
现在在您的结构中,您使用此类型而不是简单char*
。这是可选的,但非常推荐。像这样:
typedef struct stockItem {
stockItem_componentType componentType;
char *stockCode;
int numOfItems;
int price;
} stockItem;
最后,你的函数原型是:
struct inventory* searchForItem(stockItem_componentType code);