EGL 源格式的函数部件

可以在 EGL 文件中声明函数,如 EGL 源格式中所述。

以下示例显示了一个带有两个嵌入函数的程序部件,其中还包含一个独立函数和一个独立记录部件:
  Program myProgram(employeeNum INT)
    {includeReferencedFunctions = yes}

    // program-global variable
      employees record_ws;
      employeeName char(20);

    // a required embedded function
    Function main()

      // initialize employee names
      recd_init();

      // get the correct employee name
      // based on the employeeNum passed
      employeeName = getEmployeeName(employeeNum);
    end

    
    // another embedded function
    Function recd_init()
      employees.name[1] = "Employee 1";
      employees.name[2] = "Employee 2";
    end

      end

    
  // stand-alone function
  Function getEmployeeName(employeeNum INT) returns (CHAR(20))

    // local variable
    index BIN(4);
    index = syslib.size(employees.name);
    if (employeeNum > index)
      return("Error");
    else
      return(employees.name[employeeNum]);
    end

    
  end

    
  // record part that acts as a typeDef for employees
  Record record_ws type basicRecord
    10 name CHAR(20)[2];
  end

    
函数部件的语法图如下所示:

函数部件的语法图
Function functionPartName ... end
将部件标识为函数并指定部件名。有关命名规则,请参阅命名约定
parameter
一个参数,表示在函数中从头到尾可用的内存区域,可从调用函数中接收值。有关用于声明参数的语法的详细信息,请参阅函数参数
returns (returnType)
描述函数返回给调用程序的数据。返回类型的特征必须与调用函数中接收该值的变量的特征相匹配。
{alias = name}
仅当函数在类型为 nativeLibrary 的库中时才有效。在该上下文中,name 是基于 DLL 的函数的名称,并且缺省为 EGL 函数名。如果在用基于 DLL 的函数的名称来命名 EGL 函数,则显式设置 alias 属性。
dataItemPartName
对函数可见并且作为返回值的 typeDef(格式模型)的 dataItem 部件。
primitiveType
返回给调用程序的数据的基本类型。
length
返回给调用程序的数据的长度。长度是一个整数,它表示返回的值中的字符或数字的数量。
decimals
对于某些数字类型,可以指定 decimals,它是用来表示小数点后的位数的整数。最大小数位数是以下两个数字中较小的那一个:18 或声明为 length 的位数。小数点不与数据存储在一起。
"dateTimeMask"
对于 TIMESTAMP 和 INTERVAL 类型,可指定“dateTimeMask”,它会赋予日期时间值中的给定位置特别的意义(如“年份位”)。掩码不会与数据存储在一起。
statement
EGL 语句,如 EGL 语句中所述。大多数情况下以分号结尾。
variableDeclaration
变量声明,如函数变量中所述。
containerContextDependent
指示是否扩展用于解析函数的名称空间,这些函数是由正被声明的函数调用的。缺省值为 no

此指示符将在从 VisualAge® Generator 迁移的代码中使用。有关详细信息,请参阅 containerContextDependent

相关概念
EGL 项目、包和文件
函数部件
导入
类型为 basicLibrary 的库部件
类型为 nativeLibrary 的库部件
部件
对部件的引用
引用 EGL 中的变量
语法图
Typedef

相关参考
数组
containerContextDependent
EGL 语句
函数调用
函数参数
函数变量
INTERVAL
I/O 错误值
命名约定
基本类型
TIMESTAMP

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.