6

When you compile the Pascal routine without using the -calignoption, the program does not work correctly.

The commands to compile and execute DayWeather.p and DayWeatherMain.c without -calign

The commands to compile and execute DayWeather.p and DayWeatherMain.c with -calign

hostname% pc -c DayWeather.p

hostname% cc DayWeather.o DayWeatherMain.c -lpc hostname% a.out

day = '' weather = ' sun'

hostname% pc -calign -c DayWeather.p

hostname% cc DayWeather.o DayWeatherMain.c -lpc hostname% a.out

day = 'Sunday' weather = 'sunny'

The Pascal procedure,

VarRec.p

Variant Records

C equivalents of variant records can sometimes be constructed, although there is some variation with architecture and sometimes a need to adjust alignment. You can avoid the need to adjust alignment by using the -calignoption.

type

vr = record

case tag: char of

'a': (ch1, ch2: char);

'b': (flag: boolean);

'K': (ALIGN: integer);

end;

procedure VarRec(var x: vr); begin

if x.ch1 = 'a' then x.ch2 := 'Z'

end; { VarRec }

108

Pascal 4.0 User’s Guide