我在驅動程序庫的函數調用代碼行下面找到了它。我正試圖理解這個指針表達式。但很難理解。任何人都可以解釋這個複雜的指針表達式嗎?
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
下面的代碼行是上述代碼組件的定義。
#define SYSCTL_PERIPH_GPIOA 0xf0000800 // GPIO A
#define ROM_SysCtlPeripheralEnable \
((void (*)(uint32_t ui32Peripheral))ROM_SYSCTLTABLE[6])
#define ROM_SYSCTLTABLE ((uint32_t *)(ROM_APITABLE[13]))
#define ROM_APITABLE ((uint32_t *)0x01000010)
這是一個函數指針演員陣容,這意味着你可以用'ROM_SysCtlPeripheralEnable'就好像它是返回'void',並採取了'uint32_t'參數的函數的名稱。 – 2015-02-12 07:31:41