我对PIC24F微控制器的微芯片演示应用程序中的这段代码感到困惑。看起来这个宏在运行时被分配给该数组的地址。我不认为这是可能的,所以我对c的有限知识现在真的让我失望了。有人能提供一些见解吗?
#define MBR_ADDR_TAG
#define MBR_ATTRIBUTES __attribute__((space(psv), address(DRV_FILEIO_INTERNAL_FLASH_CONFIG_FILES_ADDRESS)))
...
const uint8_t MBR_ATTRIBUTES MasterBootRecord[FILEIO_CONFIG_MEDIA_SECTOR_SIZE] MBR_ADDR_TAG =
{....}
答案 0 :(得分:0)
几年前读完我自己的问题后,我现在看到了答案。 MBR_ADDR_TAG只是插入到MasterBootRecord []的声明/初始化中,但是因为它从未被定义为任何东西,所以它只会被忽略,因此它等效于:
#define MBR_ATTRIBUTES __attribute__((space(psv), address(DRV_FILEIO_INTERNAL_FLASH_CONFIG_FILES_ADDRESS)))
...
const uint8_t MBR_ATTRIBUTES MasterBootRecord[FILEIO_CONFIG_MEDIA_SECTOR_SIZE] =
{....}