我想使用变量的名称作为文字/字符串来调用过程。寻找一个过程/api/任何东西来模拟来自 C 的字符串化运算符。甚至可能吗?
myField = Value;
myProc(stringize(myField):myField);
dcl-proc myProc;
dcl-pi;
variableName char(10);
value char(10);
end-pi;
dsply (variableName + ': ' + value);
end-proc;
预期成果:
我的字段:值
No.这甚至不是 C 运算符,而是宏扩展的工件。C 预编译器执行扩展。RPG 编译器中没有任何内容可以执行此操作。您可以通过在 developerworks 上提交 RFE 来请求此功能。
但是,我真的不明白这种需求。C 宏只是将参数名称转换为文本,如下所示:
#define stringize(x) #x
a = stringize(test);
结果a = "test";
为什么不直接使用a = "test";
在RPG中,为什么不直接使用a = 'test';
或在您的示例中myProc('myfield': myfield);
stringize(myfield)
完成什么?