我有一個結構概述如下:複製一個結構部件成一個新的結構
typedef struct {
/* Device */
UART_DEV uartDev;
/* gpio */
uint32_t gpiopio;
} DEVICE;
在main.c中我聲明一個新的UART設備並把它傳遞給函數調用配置();
/* main.c */
static UART_DEV newUartDev;
configure(newUartDev);
configure()
位於test.c的和配置功能,我想創建的UART設備的副本,並將其存儲在全局存儲器內。
/* Test.c */
UART_DEV globalUartDev;
DEVICE globalDevice;
static int configure(UART_DEV newUartDev) {
/* Create a global copy of spi device */
globalUartDev = newUartDev;
DEVICE.uartDev = globalUartDev;
}
然後我在main.c中調用另一個函數setTest
。 setTest位於test.c中。我不通過它在main.c中聲明的uart設備,而是我想只使用我之前創建的全局結構。 setTest
電話open
在dev.c
/* test.c */
setTest() {
open(&globalDevice);
}
最後我將使用UART設備開放。
/* dev.c */
int open(DEVICE *dev) {
read(dev->uartDev)
}
這是創建副本並將其傳遞給文件的正確方法嗎?
Globals是邪惡的。 –
@MichaelWalz比繼續從main.c傳遞文件好嗎? – homeGrown
不要寫一本描述你的代碼的小說,而是將**實際**代碼作爲[mcve]發佈。 – Olaf