gpt4 book ai didi

c - 怪异的C代码(20-30岁)

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:35 26 4
gpt4 key购买 nike

所以我负责尝试重建一个工具,它是一个用于 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 图生成器。

最佳答案

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

关于c - 怪异的C代码(20-30岁),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com