奇怪的C代码(20-30岁)

时间:2014-03-20 19:58:11

标签: c

所以我负责尝试重建工具,它是IPDS(http://en.wikipedia.org/wiki/IBM_Intelligent_Printer_Data_Stream_%28IPDS%29)的一个庞大的测试套件,它有各种各样的奇怪之处。例如,这来自.c文件,这种语法还有很多。此TEST函数没有您期望的正常语法。是的,这可以在某处编译......

#include "stdbase.h"

TEST( tbuf, cbasedev, 1.0, test, IUO, 001)
  {
  buffer buf;
  Message (INFORMATION, INFORMATION, "Value of NULL is %d\n", NULL);
  buf = AllocBuf(16384);
  ListBuf();
  }
ENDTEST

任何大师都明白这个语法吗? ENDTEST让我想到#ifndefine / #define / #endif语句,所以可能是在语法之前。

更好的是,这个C代码是基于FORTRAN 77中编写的原始解决方案构建的。更好的是,它们有专门用于生成/跟踪几十个全局变量的文件。哦,快乐。

#include“stdbase.h”是一个只有大量其他#include“ _ .h”的文件。

是否有任何程序用于真正古老的代码,你将它指向顶层目录,它试图通过并找出依赖于什么,什么使用什么?就像一个UML图生成器差不多。

1 个答案:

答案 0 :(得分:2)

stdbase.h不是标准C库标头。它必须是您正在处理的产品的特定内容。从它的外观来看,TEST / ENDTEST看起来像是单元测试 - 你使用单元测试框架吗?之前没有什么"" #define - K& R C预处理器没有使用与#define-style语法不同的东西。您应该查看stdbase.h(以及其中包含的任何.h)以确定定义的TEST / ENDTEST。 (可能是某种类型的宏)