c - 预处理器忧郁症有什么治疗方法吗?

标签 c vim c-preprocessor

我知道在我的特定情况下,我可以使用 -E 选项启动预处理器输出输出。对于生成的代码,这个预处理器输出是致命的。例如,我有一个 4gl 应用程序,Informix 将其转换为 C,后者又被吐出一团糟。

我想要的是一个允许我指定有效预处理器值并仅显示相关代码的编辑器。我在 Vim 中有一些非常基本的工作匹配 #ifdef#endif,但是代码充满了更高级的结构,例如 #ifndef#if#else。更糟糕的是,这些结构在逻辑上更复杂,而且我认为我的 Vim 脚本编写技能不足以让我从中获得我想要的东西。例如:

#if DLEVEL > 5
    #define SIGNAL  1
    #if STACKUSE == 1
        #define STACK   200
    #else
        #define STACK   100
    #endif
#else
    #define SIGNAL  0
    #if STACKUSE == 1
        #define STACK   100
    #else
        #define STACK   50
    #endif
#endif
#if DLEVEL == 0
    #define STACK 0
#elif DLEVEL == 1
    #define STACK 100
#elif DLEVEL > 5
    display( debugptr );
#else
    #define STACK 200
#endif

如果我想解决它,包括定义一个表达式计算器。这必须是一个解决的问题!如果您对 Vim 有任何建议或其他建议,请告诉我。

最佳答案

eclipse CDT编辑器根据您声明为事件的宏,可以很好地突出显示代码。你可能想检查一下。 alt text

关于c - 预处理器忧郁症有什么治疗方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/739230/

相关文章:

c - 是否可以使用预处理器(宏)将 C 字符串文字转换为大写?

c++ - 使用 inflate 解压 png 文件

C - 带指针的字符串连接

Vim --remote-expr 示例

vim - 如何删除 Vim 中运动中的空行

c - 宏扩展错误

objective-c - 逻辑 && 语句

c - 函数调用后指针会发生什么

vim:删除显示行而不是物理行

c++ - 如何创建#define 来创建二维 vector ?