有条件地在C中包含数据表列的最佳方法

时间:2016-02-28 02:21:39

标签: c c-preprocessor

我有很多数据表可以实现紧凑的功能。但是,如果我想要有条件地编译多个数据表项,它会使表本身变得一团糟。这是一个例子:

<WrapPanel Grid.IsSharedSizeScope="True">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="a"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Button>New Branch</Button>
    </Grid>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="a"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Button>Merge</Button>
    </Grid>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="a"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Button>Delete Branch in French!</Button>
    </Grid>
</WrapPanel>

那也只有3个项目!我可能最好只包括USE_UNITS和USE_RAW的每种可能组合所选择的4份表格。

有条件编译数据表的最佳方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用宏来使这个替代方案更简洁:

$('#filterSelect').change(function() {
  var optionSelected = $("option:selected", this).val();
  var filter = $('.filter');

  if (filter.attr('data-client') != optionSelected) {
    filter.hide();
  }

});

但更好的解决方案是始终包含所有字段。它不会占用太多空间,并使代码更多更具可读性。

答案 1 :(得分:1)

编写一个程序(不一定是在C中)用你的表输出C代码。

将该程序的输出包含在原始程序中。

#include "output_of_intermediary_program.h" // or maybe .c

您可以将此方法集成到makefile和其他构建工具中。