如何使用struct成员作为参数

时间:2018-06-14 05:23:27

标签: c struct

我试图使用结构调用通道的成员来在更高级别的函数中使用。是否可能只有一个参数?

typedef struct {
    int size;
    Port_PadDriver padDriver; //pad driver speed
    UserConfig *pinTable;
    Port_Mode defaultmode;
    Port_State defaultstate; //set, reset, toggle port
} DefaultConfig;    

typedef struct {
    uint32 Channel;
    Port_Pin *pin;
    Port_Mode mode;
    Port_State state; //set, reset, toggle port
} UserConfig;

void IO_init(void) {
    DefaultConfig defaultConfig;//create object
    initconfig(&defaultConfig);//set init settings
    userConfig(&defaultConfig);//overwrite settings with users settings with 
a struct array
}

是否可以创建IO_SetPinHigh(int channelnum);在IO_init(void)中用于更改特定引脚。

1 个答案:

答案 0 :(得分:1)

您可以使用.运算符引用struct成员。通过这样做,您可以像任何其他变量一样单独引用此成员:

IO_SetPinHigh(defaultConfig.channel);

当然,如果要修改此变量,则必须将指针传递给它:

IO_SetPinHigh(&defaultConfig.channel);