使GNU缩进正确处理结构文字

时间:2015-05-05 01:22:57

标签: c indentation gnu

当我尝试在这段代码上使用GNU缩进时:

tree_node_s *t = GC_MALLOC_ATOMIC (sizeof (tree_node_s));
*t = (tree_node_s){.val = n,.h = 0};

我明白了:

tree_node_s *t = GC_MALLOC_ATOMIC (sizeof (tree_node_s));
*t = (tree_node_s)
  {
  .val = n,.h = 0};

现在显然,这看起来非常糟糕,并不是一个结构文字。我只将默认选项传递给GNU缩进(意味着是GNU样式)。有没有我可以传递给它的选项,以便以一种看起来不那么可怕的方式处理这种情况?

2 个答案:

答案 0 :(得分:1)

它至少在2.2.11中有所作为,但在块外的复合语句中可能存在另一个问题(请查看bugzilla链接)。如果您使用的是旧版本,则可以升级并重试。

只是一个建议。

答案 1 :(得分:-1)

如果'tree_node_s'不止一个内部变量(如int,char等),那么发布的代码将无法正常工作

这是因为从结构中分配结构仅在创建接收结构时有效。在已发布的代码中,已经创建了接收结构,因此不会执行正确的分配。

建议:

imp.find_module('XX')

也许不那么优雅,但非常可靠。