我在驱动程序库的函数调用代码行下面找到了它。我正试图理解这个指针表达式。但很难理解。任何人都可以解释这个复杂的指针表达式吗?
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