相关疑难解决方法(0)

是否可以使用预处理器对数组进行排序?

我有很多非常长的数组.没有运行时排序是可能的.手动排序也很耗时.此外,可以在以后以任何顺序添加新元素,因此我想使用C预处理器按值对它们进行排序,或者可能有任何编译器标志(GCC)?

例如:

sometype S[] = {
  {somevals, "BOB", someothervals},
  {somevals, "ALICE", someothervals},
  {somevals, "TIM", someothervals},
}
Run Code Online (Sandbox Code Playgroud)

必须这样排序:

sometype S[] = {
   {somevals, "ALICE", someothervals},
   {somevals, "BOB", someothervals},
   {somevals, "TIM", someothervals},
}
Run Code Online (Sandbox Code Playgroud)


解决了

好的,这是我的解决方案:

  1. 手动将每个数组复制并粘贴到名为tobesorted.c的临时文件中
  2. 按第二列排序: sort -b -i --key=2 tobesorted.c
  3. 将输出复制并粘贴回原始文件.

实际上,有一种可能性直接从预处理器调用"排序"会很好(我希望至少GCC能以某种方式支持这些功能,但似乎它没有).

c sorting gcc c-preprocessor

6
推荐指数
2
解决办法
960
查看次数

标签 统计

c ×1

c-preprocessor ×1

gcc ×1

sorting ×1