【发布时间】:2009-06-03 17:42:24
【问题描述】:
我正在尝试使用以下代码初始化 Metal C 环境,但在 memset 行上出现以下错误。 ERROR CCN3275 IMIJWS0.METAL.SAMPLIB(MEM):6 遇到意外的文本')'。 错误 CCN3045 IMIJWS0.METAL.SAMPLIB(MEM):6 未声明的标识符 ___MEMSET。 ERROR CCN3277 IMIJWS0.METAL.SAMPLIB(MEM):6 语法错误:可能缺少 ')' 或 ','? CCN0793(I) 文件编译失败 //'IMIJWS0.METAL.SAMPLIB(MEM)'。未创建目标文件。 下面是我的代码
#include < string.h>
#include < stdlib.h>
#include < metal.h>
void mymtlfcn(void) {
struct __csysenv_s mysysenv;
memset ( &mysysenv, 0, sizeof ( mysysenv ) );
mysysenv.__cseversion = __CSE_VERSION_1;
mysysenv.__csesubpool = 129;
mysysenv.__cseheap31initsize = 131072;
mysysenv.__cseheap31incrsize = 8192;
mysysenv.__cseheap64initsize = 20;
mysysenv.__cseheap64incrsize = 1;
【问题讨论】:
-
您遇到了一些#include 问题。尝试将 string.h 移动到 stdlib.h 之后。
-
打乱标准标题的顺序不会有任何用处。
-
实际上,我们可以了解一下 Metal C 的一些细节吗?你所做的在标准 C 中看起来不错,所以要么你搞砸了你没有显示的东西,要么我们看到的不是你实际输入的,或者 Metal C 是有缺陷的或标准前的编译器。
-
试过了,没有解决问题。
-
Metal C 包含一组非常有限的标准 c 库,专为大型机系统编程而设计。我认为这是一个非标准的编译器,因为我遇到了一些问题,例如 // 不能作为注释工作以及 [] 在声明中的位置。这是有关它的更多信息的链接。 www-03.ibm.com/systems/z/os/zos/metalc