unifdef 命令

命令参考大全,卷 5,s - u

unifdef 命令

用途

从文件中除去 ifdef 行。

语法

unifdef-t ] [  -l ] [  -c ] [  -DSymbol ] [  -USymbol ] [  -idSymbol ] [  -iuSymbol ] [  File ]

描述

unifdef 命令用于除去文件中的 ifdef 行,而不会进行别的操作。为了正确运行,unifdef 命令认出嵌套的 ifdefs、注释、C 语言语法的单引号和双引号,但不包括文件或不解释宏。unifdef 命令认出但并不除去注释。

如果没有指定 Fileunifdef 命令从标准输入得到输入,并复制输出到标准输出。

一旦指定 Symbol,ifdef 中的行最终被复制到输出或除去。与符号关联的 ifdef、ifndef、else、elif 和 endif 行也要除去。涉及未指定的 Ifdef 不会更改并和相关 ifdef、else、elif 和 endif 行一起拷出。如果相同符号在一个以上的自变量里出现,仅第一个出现的有意义。例如,如果 ifdef X 嵌套在另一个 ifdef X内, 内部的 ifdef 即被认为是无法识别的符号。

当使用 ifdef 定界非 C 语言行,如注释或未完成的代码时,有必要指定为此目的使用哪些符号。否则,unifdef 命令将试图分析 ifdef 行的引用和注释。

unifdef 命令不能处理 cpp 构造,例如:

 

#if defined(X) || defined(Y)

或者

 

#elif X

或者

 

#elif defined(X) || defined(Y)
关键字

unifdef 命令识别以下关键字:

  • ifdef
  • ifndef
  • else
  • endif
  • elif

标志

 

-c补充unifdef 命令的操作。即保留被除去的行,反之亦然。
-D Symbol指定定义的符号。
File指定输入源。
-id Symbolunifdef 命令不会试图识别指定的 ifdef 内的注释、单引号或双引号,但这些行将被拷出。
-iu Symbolunifdef 命令不会试图识别指定的 ifdef 内的注释、单引号或双引号。这些行不会拷出。
-l用空行替换除去的行,而不是将其删除。
-t允许 unifdef 命令用于纯文本(不是 C 语言代码): unifdef 命令不会试图识别注释、单引号和双引号。
-U Symbol指定要取消定义的符号。

退出状态

该命令返回以下退出值:

0输出为输入的精确副本。
1输出不是输入的精确副本。
2命令因为 EOF 过早发生、不相称的elseelifendif而失败。

示例

  1. 示例如下:

     

    unifdef -DA original.c > modified.c

    使 unifdef 命令阅读original.c文件,并除去 #ifdef A 行。然后除去与 #ifdef A 相关的在 #elif/#else 后的所有行,一直到 #endif。输出放在 modified.c 文件中。

  2. 示例如下:

     

    unifdef -UA original.c > modified.c

    使 unifdef 命令读 original.c文件,并 除去 #ifdef A,一直到其与其关联的 #elif//#else 或 #endif。对于 #elif,#elif 由 #if替换。对于 #else, #else 同与其相关的 #endif 一同删除。输出放在 modified.c 文件中。

文件

 

/usr/bin/unifdef包含unifdef命令。

相关信息

cpp 命令。

《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『命令概述』

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值