这段代码取自Accessing SPI Devices in Linux
static struct spi_board_info
spi_stm32_flash_info__dongle = {
#if defined(CONFIG_SPI_SPIDEV)
.modalias = "spidev",
#endif
.max_speed_hz = 25000000,
.bus_num = 3,
.chip_select = 0,
.controller_data = &spi_stm32_flash_slv__dongle,
};spi_stm32_flash_info__dongle是一种结构吗?
这是什么?我们还有if insde结构吗?在变量前是否有'.;‘的意义?我知道‘’用于访问结构元素,但在此之前没有任何内容。
发布于 2014-04-07 14:25:34
modalias行要么在那里,要么不在。.用于根据字段的名称初始化字段。这是用于此目的的特殊语法。发布于 2014-04-07 14:25:07
{}的内容正在初始化结构的属性。
#ifdef块在结构中是完全合法的,因为编译器永远看不到它;预处理器将根据CONFIG_SPI_SPIDEV的状态将块的内容保留在其中或将其删除。Windows API对一些结构执行类似的操作,使用#ifdef块添加或删除一些成员。
https://stackoverflow.com/questions/22904934
复制相似问题