这个点语法在Pebble手表开发教程中意味着什么?
我在Pebble watch app开发教程中遇到了以下代码:
// Set handlers to manage the elements inside the Window window_set_window_handlers(s_main_window, (WindowHandlers) { .load = main_window_load, .unload = main_window_unload });
我无法理解.load和.unload的这个任务。 这是标准C吗? 我不认为我以前见过类似的语法。
这是标准的c99。
它结合了复合文字
(WindowHandlers) {}
和指定的初始化者
.load = main_window_load, .unload = main_window_unload
我相信它是标准的C99,在初始化时使用初始化的struct
常量和命名字段。
顺便说一句,它也是C扩展 – 由GCC提供的旧C标准 – ( 指定的初始化器 )
对于C11标准,其最终草案n1570描述了“§6.7.9初始化”中的语法