В внедренного C, я врезался в примере следующие (и многие другие похожи):Embedded C#define
#define GPIOA_AHB ((GPIOA_AHB_Type *) GPIOA_AHB_BASE)
GPIOA_AHB_BASE является адресом, и это определено ранее. Что именно делает этот код? Я знаю, что определяет директиву для препроцессора, так что он заменяет все экземпляры значением, заданным в определении. Например,
#define GPIOA_AHB GPIOA_AHB_BASE
заменит GPIOA_AHB с тем значением GPIOA_AHB_BASE было определено. Я не получаю, хотя то, что происходит в первом случае ...
Вы можете получить предварительно обработанную форму своего исходного кода (например, используя что-то вроде 'gcc -C -E yoursource.c> yoursource.i') –