[英]Expanding struct fields in C
假设我有这个结构,该结构在给用户的sim.h
头文件中定义:
typedef struct {
cmd cmd; /// The processed command in each pipe stage
intt src1;
int src2; /// Actual value of src2 (considering forwarding mux, etc.)
} PipeStage;
现在假设我要在sim.c
文件中扩展它的字段。我该怎么办?
typedef struct pipeStage{
cmd cmd;
pc_t PCofCmd;
int src1;
int src2;
int dstVal;
} PipeState;
可能吗?
正如Weather Vane在评论中所述,您可以定义一个新struct
,其中一个(或多个)字段属于其他struct
类型:
typedef struct {
cmd cmd; /// The processed command in each pipe stage
int src1;
int src2; /// Actual value of src2 (considering forwarding mux, etc.)
} PipeStage;
typedef struct pipeStage{
// cmd cmd;
// int src1;
// int src2;
PipeStage stage; // or it might be a pointer: PipeStage *p_stage;
pc_t PCofCmd;
int dstVal;
} PipeState;
注意
如果字段的顺序很重要,并且pc_t PCofCmd
应该在cmd cmd;
那么您没有太多选择,只能定义一个新struct
:
typedef struct pipeStage{
cmd cmd;
pc_t PCofCmd;
int src1;
int src2;
int dstVal;
} PipeState;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.