Records and structures – HP SunSoft Pascal 4.0 User Manual
Page 148

124
Pascal 4.0 User’s Guide
6
The
-calign
option is not needed for this example, but may be necessary if
the array parameter is an array of aggregates.
Records and Structures
In most cases, a Pascal record describes the same objects as its C structure
equivalent, provided that the components have compatible types and are
declared in the same order. For more information, see “Compatibility of Types
for C and Pascal” on page 90.
Records that contain aggregates may differ because aggregates in C and Pascal
sometimes have different sizes and alignments. If you compile the Pascal code
with the
-calign
option, the differences are eliminated.
A Pascal record of an integer and a character string matches a C structure of an
integer and an array of
char
values, as follows:
The commands to compile and
execute
IntCA.c
and
IntCAMain.p
hostname% cc -c IntCA.c
hostname% pc -calign IntCA.o IntCAMain.p
hostname% a.out
4
4
4
The C function,
StruChr.c
#include
struct TVarLenStr {
int nbytes;
char a[26];
};
void StruChr(struct TVarLenStr *v)
{
strncpy(v->a, "strvar", 6);
v->nbytes = 6;
}