, , , . , , :
, , , .. ;
, .. ;
, .
, , .
:
union ID_ {
};
:
union word {
int nom;
char str[20];
};
:
union word *p_w, mas_w[100];
, .
. union, .
union:
...
typedef union q {
int a;
double b;
char s[5];
} W;
void main(void)
{
W s, *p = &s;
s.a = 4;
printf(\n Integer a = %d, Sizeof(s.a) = %d, s.a, sizeof(s.a));
p > b = 1.5;
printf(\n Double b = %lf, Sizeof(s.b) = %d, s.b, sizeof(s.b));
strcpy(p>s, Minsk);
printf(\n String a = %s, Sizeof(s.s) = %d, s.s, sizeof(s.s));
printf(\n Sizeof(s) = %d, sizeof(s));
}
:
Integer a = 4, Sizeof(s.a) = 2
Double b = 1.500000, Sizeof(s.b) = 4
String a = Minsk, Sizeof(s.s) = 5
Sizeof(s) = 5
.
enum ID__ {
_
};
, :
enum marks {
zero, one, two, three, four, five
};
0, 1, 2,.... , . :
enum level {
low=100, medium=500, high=1000, limit
};
limit , 1001.
:
|
|
enum marks Est;
enum level state;
marks {zero, one, two, three, four, five}.
:
;
.
.
:
...
typedef enum {
mo=1, tu, we, th, fr, sa, su
} days;
void main(void)
{
days w_day; //
int t_day, end, start;
// ,
puts( ( 1 7): );
scanf(%d, &t_day);
w_day = su;
start = mo;
end = w_day t_day;
printf(\n %d , \
%d \n\
%d . , start, t_day, end);
}
:
( 1 7): 5
1 , 5-
2 .
. , , / . 1 , . ( ), int:
struct fields {
unsigned int flag: 1;
unsigned int mask: 10;
unsigned int code: 5;
};
. , . . , , . , , , . . int, int. , 0 int:
struct areas {
unsigned f1: 1;
: 2; 2 ;
unsigned f2: 5;
: 0 int;
unsigned f3:5;
double data;
char buffs[100];
;
};
. (&). , - .