结构体参数传入的问题,感谢大神看看问题在哪里?

2019-12-13 18:24发布

完整代码如下:

#include "stdafx.h"

typedef unsigned short     int uint16_t;
uint16_t GPIO_Pin_1=1;
uint16_t GPIO_Pin_2=2;

typedef struct GPIO_TypeDef
{
  uint16_t a;      
};

struct GPIO_CHECKSELF
{
        GPIO_TypeDef GPIOx;
        uint16_t GPIO_Pin_x;
};
struct GPIO_CONTROL
{
        GPIO_TypeDef GPIOx;
        uint16_t GPIO_Pin_x;
};

struct DEVICE
{
        GPIO_CHECKSELF GPIO_Checkself;
        GPIO_CONTROL GPIO_Control;
};

void ConfigDevice(DEVICE device,GPIO_TypeDef GPIOx,uint16_t GPIO_Pin_x,GPIO_TypeDef GPIOy,uint16_t GPIO_Pin_y)
{
        device.GPIO_Checkself.GPIOx = GPIOx;
        device.GPIO_Checkself.GPIO_Pin_x = GPIO_Pin_x;

        device.GPIO_Control.GPIOx = GPIOy;
        device.GPIO_Control.GPIO_Pin_x = GPIO_Pin_y;
}


int _tmain(int argc, _TCHAR* argv[])
{
        DEVICE KeTingLight;
        GPIO_TypeDef GPIOC;
        GPIOC.a =1;
        ConfigDevice(KeTingLight,GPIOC,GPIO_Pin_2,GPIOC,GPIO_Pin_1);
        printf("%d,%d,%d,%d: ",KeTingLight.GPIO_Checkself.GPIOx,KeTingLight.GPIO_Checkself.GPIO_Pin_x,KeTingLight.GPIO_Control.GPIOx,KeTingLight.GPIO_Control.GPIO_Pin_x);
        printf("完成: ");
        return 0;
}

输出结果应该是 1 2 1 1
结果输出的是 52428 52428 52428 52428


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。