double
A[10].
If the size is not known or if you want to disable
verification of the length, then use type*name instead
(for example, double*A
).
By default, all parameters that are pointers are assumed to be input type U. All non-pointer values are assumed to be input type I. This behavior parallels the C language parameter passing scheme.
proc proto package = sasuser.mylib.struct label = "package of structures"; #define MAX_IN 20; typedef char * ptr; struct foo { double hi; int mid; ptr buf1; long * low; struct { short ans[MAX_IN + 1]; struct { /* inner */ int inner; } n2; short outer; } n; }; typedef struct foo *str; struct foo2 { str tom; }; str get_record(char *name, int userid); run; proc fcmp library = sasuser.mylib; struct foo result; result = get_record("Mary", 32); put result=; run;
proc proto package =
sasuser.mylib.str2
label = "package of structures";
#define E_ROW 52;
#define L_ROW 124;
#define S_ROW 15;
typedef double ExerciseArray[S_ROW][2];
typedef double LadderArray[L_ROW];
typedef double SamplingArray[S_Row];
typedef enum
{
True, False, Maybe
} YesNoMaybeType;
typedef enum {
Ten = 10, Twenty = 20, Thirty = 30, Forty = 40, Fifty = 50
} Tens;
typedef struct {
short rows;
short cols;
YesNoMaybeType type;
Tens dollar;
ExerciseArray dates;
} EStructure;
run;