objective-c - C 预处理器的替代品

标签 objective-c c c-preprocessor

我有兴趣使用 C 预处理器以外的东西来预处理我的 C 和 Objective-C 源代码。有没有好的替代品?

一个例子是允许一个人在 C 代码中间逃逸到 python 或 perl 片段中,并且片段吐出 C 即然后正常编译。

最佳答案

您可以将 PHP 用作 C 预处理器。优点是:

  • 非常相似的语法,所以语法高亮有效。
  • <??>不在标准 C 中使用(对于非标准 C,唯一被破坏的是返回 min/max 的旧 GCC 扩展运算符)
  • 它拥有丰富的图书馆。
  • 图灵完成了。
  • 宏的使用非常明确。 (与偷偷摸摸的 C 预处理器宏相比)

不过,如果要认真使用,则需要让 PHP 打印 #line 指令来调试预处理代码。

<?php include_once "stdio.h"; ?>

int main()
{
    <?php
        for($i = 0; $i < 20; $i++)
            echo 'printf("%d\n", '.$i.');';
    ?>
}

关于objective-c - C 预处理器的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/396644/

相关文章:

c++ - 如何在 C++ 中声明/定义相互依赖的模板?

iphone - Objective-C 返回一个数组 - 内存问题

ios - UIButton 不使用 UIViewAnimationOptionTransitionFlipFromTop 设置动画

使用 u+s 权限重新启动的 C 程序

c - 仅打印最后输入的说明

c - for循环计算看不懂

C++预处理器##运算符

objective-c - NSMutableArray 没有可见接口(interface)声明选择器 ReplaceObjectAtIndex :

objective-c - 如何在命名类别中声明私有(private)属性?

c - 使用 C 预处理器进行嵌套宏迭代