Lazarus:打开"输出时出现致命错误"另一个程序中的程序

时间:2016-12-18 11:02:07

标签: lazarus

所以我刚刚开始使用排序算法的学校通用程序。老师总是喜欢将所有东西都放在不同的单元中,所以我决定创建一个"输出"给出排序数组输出的过程。

unit selectionsort;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, typen, ausgabe;
procedure SSort (FeldS: t_Feld);

implementation
procedure SSort (FeldS: t_Feld);
var h,j,min,hilf: integer;
begin
  for h:= 1 to c-1 do
      begin
        ## all the sorting stuff
      end;
  **ausgabe(FeldS);**
end;
end.

(ausgabe是德语输出)

unit ausgabe;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, typen;
procedure ausgabe(FeldA: t_feld);

implementation
procedure ausgabe(FeldA: t_feld);
begin
    for i:= 1 to c do
      begin
        write(FeldA[i], ' ');
      end;

  readln();
end;

end.

粗体部分(调用程序ausgabe时)是我收到错误的地方:致命:语法错误,"。"预期但是"("发现。我知道我可以删除程序" Ausgabe"并在排序程序中执行输出但我想这样做。

1 个答案:

答案 0 :(得分:2)

由于过程ausgabe和单元具有相同的名称(这是可能的,因为它们在不同的范围内),编译器会假设一个所谓的“合格标识符”:unitname.procedurename。如果多个单元具有相同名称的标识符,则需要这样做。要克服错误:重命名单元或过程,或者使用其限定名称调用过程(第一个ausgabe是编译器应搜索符号的单元的名称,第二个{{1是实际的过程名称):

ausgabe