forked from Mirrors/tinycc
66 lines
1.1 KiB
C
66 lines
1.1 KiB
C
#include <stdio.h>
|
|
|
|
typedef int MyInt;
|
|
|
|
struct FunStruct
|
|
{
|
|
int i;
|
|
int j;
|
|
};
|
|
|
|
typedef struct FunStruct MyFunStruct;
|
|
|
|
typedef MyFunStruct *MoreFunThanEver;
|
|
|
|
int main()
|
|
{
|
|
MyInt a = 1;
|
|
printf("%d\n", a);
|
|
|
|
MyFunStruct b;
|
|
b.i = 12;
|
|
b.j = 34;
|
|
printf("%d,%d\n", b.i, b.j);
|
|
|
|
MoreFunThanEver c = &b;
|
|
printf("%d,%d\n", c->i, c->j);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* "If the specification of an array type includes any type qualifiers,
|
|
the element type is so-qualified, not the array type." */
|
|
|
|
typedef int A[3];
|
|
extern A const ca;
|
|
extern const A ca;
|
|
extern const int ca[3];
|
|
|
|
typedef A B[1][2];
|
|
extern B const cb;
|
|
extern const B cb;
|
|
extern const int cb[1][2][3];
|
|
|
|
extern B b;
|
|
extern int b[1][2][3];
|
|
|
|
/* Funny but valid function declaration. */
|
|
typedef int functype (int);
|
|
extern functype func;
|
|
int func(int i)
|
|
{
|
|
return i + 1;
|
|
}
|
|
|
|
/* Even funnier function decl and definition using typeof. */
|
|
int set_anon_super(void);
|
|
int set_anon_super(void)
|
|
{
|
|
return 42;
|
|
}
|
|
typedef int sas_type (void);
|
|
extern typeof(set_anon_super) set_anon_super;
|
|
extern sas_type set_anon_super;
|
|
|
|
/* vim: set expandtab ts=4 sw=3 sts=3 tw=80 :*/
|