123456789101112131415161718192021222324252627282930313233343536373839404142 |
- { this are no bugs, just wrong
- understanding of FPC syntax }
- type testfunc = function:longint;
- var f : testfunc;
- var test: testfunc;
- function test_temp: longint;
- begin
- test_temp:=12;
- end;
- procedure sound(test: testfunc);
- begin
- {writeln(test); this is wrong because
- test is the function itself and write does not know how to
- output a function !
- to call test you must use test() !! }
- writeln(test());
- end; { proc. sound }
- var i : longint;
- begin
- i:=test_temp;
- f:=@test_temp;
- if f()<>i then
- begin
- Writeln('error calling f');
- Halt(1);
- end;
- { this works for FPC
- sound(test_temp);
- but the correct syntax would be }
- sound(@test_temp);
- { imagine if a function would return its own type !! }
-
- { for f var this is correct also ! }
- sound(f);
- end.
|