binW binW - 3 months ago 18
C Question

What does this dot syntax mean in the Pebble watch development tutorial?

I came across following code in Pebble watch app development tutorial:

// 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
});


I cant understand this assignment to .load and .unload. Is this standard C? I don't think I have ever seen similar syntax before.

Answer

This is standard c99.

It is combining compound literals

 (WindowHandlers) {}

and designated initializers

.load = main_window_load,
.unload = main_window_unload
Comments