67 lines
1,022 B
C
67 lines
1,022 B
C
#include <stdio.h>
|
|
|
|
struct ForwardDecl;
|
|
|
|
typedef int MyInt;
|
|
|
|
void populate(MyInt i);
|
|
|
|
typedef enum MyEnum {
|
|
eOne = 1,
|
|
eTwo =2,
|
|
eThree = 3,
|
|
} MyEnumT;
|
|
|
|
typedef union MyUnion {
|
|
MyInt i;
|
|
const char* s;
|
|
} MyUnionT;
|
|
|
|
typedef struct MyNestedStruct {
|
|
MyInt i;
|
|
const char* s;
|
|
volatile char c;
|
|
char a[4];
|
|
MyEnumT e;
|
|
MyUnionT u;
|
|
} MyNestedStructT;
|
|
|
|
typedef struct MyStruct {
|
|
MyNestedStructT n;
|
|
void (*f)(int);
|
|
} MyStructT;
|
|
|
|
struct LargeStruct {
|
|
char buffer[9000];
|
|
int b;
|
|
};
|
|
|
|
struct RecursiveStruct {
|
|
struct RecursiveStruct *n;
|
|
};
|
|
|
|
MyStructT foo;
|
|
struct ForwardDecl *forward;
|
|
struct LargeStruct bar;
|
|
struct RecursiveStruct ke;
|
|
|
|
void populate(MyInt i) {
|
|
foo.n.i = i;
|
|
foo.n.s = "foo";
|
|
foo.n.c = 'c';
|
|
foo.n.a[0] = 'a';
|
|
foo.n.a[1] = 'b';
|
|
foo.n.a[2] = 'c';
|
|
foo.n.a[3] = 'd';
|
|
foo.n.e = eOne;
|
|
foo.f = NULL;
|
|
forward = NULL;
|
|
bar.b = i;
|
|
ke.n = NULL;
|
|
}
|
|
|
|
int main(int argc, char** argv) {
|
|
populate(argc);
|
|
printf("foo is at address: %p\n", (void*)&foo); // Break here
|
|
return 0;
|
|
}
|