这个C函数语法是什么?

前端之家收集整理的这篇文章主要介绍了这个C函数语法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > What does this dot syntax mean in the Pebble watch development tutorial? 2个
我说我在c语言编程方面有中级经验,但是我从来没有见过这个语法用来创建函数.这让我想起了JQuery事件的语法.总的来说,我想详细解释这是什么以及替代语法可能是什么.我可以更好地阅读更多有关此内容链接也很棒.
// 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
  });

这是Pebble WatchApp tutorial代码片段.

解决方法

这是一个使用复合文字函数调用.它相当于以下内容
WindowHandlers temp = {
    .load = main_window_load,.unload = main_window_unload
  };
window_set_window_handlers(s_main_window,temp );

上面还使用了指定的初始值设定项,您可以在其中指定要按名称初始化的字段.

假设WindowHandlers只包含该顺序的加载和卸载,则上述内容相当于:

WindowHandlers temp = { main_window_load,main_window_unload };
window_set_window_handlers(s_main_window,temp );

C standard更详细地介绍了这些内容.

从6.5.2.5节:

4 A postfix expression that consists of a parenthesized type
name followed by a brace-enclosed list of initializers is a
compound literal. It provides an unnamed object whose value is
given by the initializer list.

9 EXAMPLE 1 The file scope definition

06002

initializes p to point to the first element of an array of
two ints,the first having the value two and the second,four.
The expressions in this compound literal are required to be
constant. The unnamed object has static storage duration.

从第6.7.8节开始:

1

06003

7 If a designator has the form

06004

then the current object (defined below) shall have structure
or union type and the identifier shall be the name of a member of
that type.

34 EXAMPLE 10 Structure members can be initialized to nonzero values without depending on their order:

06005

原文链接:https://www.f2er.com/c/116892.html

猜你在找的C&C++相关文章