从函数返回字符串(VAX PASCAL)

迈克·T。

这是给软件考古学家的!

在您问我为什么还要设法使它起作用时,原因仅仅是因为我可以-我认为这是一个很好的借口!

我发现该过程的以下代码使用VAX PASCAL进行编译(并按预期运行)。

PROCEDURE format(number : INTEGER);
   VAR
      result : STRING(16);
   BEGIN
     :
     :
      writeln(result);
   END.

但是,如果将其转换为函数并尝试以字符串形式返回结果,则它将无法编译。

FUNCTION format(number : INTEGER) : STRING(16);
   VAR
      result : STRING(16);
   BEGIN
     :
     :
      format := result;
   END.

该错误表明该错误是函数的类型定义。

FUNCTION format(number : INTEGER) : STRING(16);
                                    1
PASCAL-E-TYPCNTDISCR, Type can not be discriminated in this context

我尝试使用VARYING和ARRAY类型而不是STRING,但是它们也不起作用。不幸的是,我找不到在SYS $ EXAMPLES或我发现的bitavers手册中返回STRING的函数的示例。

希望有人比我有更好的记忆。

谢谢

鲁道德

“ Pascal的类型系统被描述为“太强”,因为数组或字符串的大小是其类型的一部分,...” 类型和弱类型

这提示String(16)函数中的返回值对于编译器来说太模糊了。

通过声明适合编译器的字符串类型来解决此问题:

type 
  String16 = packed array[1..16] of char;

然后,您可以在函数中使用该不同类型:

FUNCTION format(number : INTEGER) : String16;
VAR
  result : String16;
BEGIN
  :
  :
  format := result;
END.

这是很多在pascal语言(和Turbo Pascal)的早期实现中使用的,并且仍然有效。像Delphi和FreePascal这样的现代编译器已经为字符串实现了专门的动态数组,该数组涵盖了更方便的字符串类型处理,而不必依赖声明严格的大小。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么是Pascal风格的字符串?

来自分类Dev

Pascal字符串到指针

来自分类Dev

PASCAL字符串到数组

来自分类Dev

Pascal:Val()函数返回负数

来自分类Dev

Pascal Ackermann函数被误解

来自分类Dev

Pascal中的抽象函数

来自分类Dev

pascal 中的函数步骤

来自分类Dev

计算对象pascal中字符串中的不同字符

来自分类Dev

如何从DLL返回字符串到Inno Setup Pascal脚本

来自分类Dev

C中的Pascal样式字符串和C样式字符串在一个函数中进行比较

来自分类Dev

来自Pascal中字符串的格式化输入

来自分类Dev

C ++中Pascal字符串的数据布局

来自分类Dev

将字符串格式化为 Pascal Case

来自分类Dev

将字符串更改为整数 - pascal

来自分类Dev

在 Pascal 中给出字符串类型时出错

来自分类Dev

Pascal-写奇怪的字符

来自分类Dev

如何检查字符串是否在Pascal中包含字符串

来自分类Dev

C宏将字符串转换为pascal字符串类型

来自分类Dev

Pascal:如何编写不带参数的函数?

来自分类Dev

在pascal中动态分配匿名函数

来自分类Dev

Pascal的Triangle主要使用C ++函数

来自分类Dev

Pascal函数参数的可变数量

来自分类Dev

Free Pascal 中的通用嵌套类函数

来自分类Dev

如何从递归函数delphi / pascal返回布尔值

来自分类Dev

Delphi / Pascal / FreePascal中的MD5用于短字符串

来自分类Dev

如何在Turbo Pascal中使用程序集8086定义字符串?

来自分类Dev

创建一种使用指针在C中转换Pascal字符串的方法

来自分类Dev

Pascal-如何将引号'作为字符串编写?

来自分类Dev

从文本文件中读取字符串到Pascal中的数组