*****Listing 3*****

#include <stdio.h>
#include <stdlib.h>

#define SET 1
#define CLEAR 0

void eh(void);

struct status_flags {
	unsigned f0 : 1;
	unsigned f1 : 1;
	unsigned f2 : 1;
	unsigned f3 : 1;
} flags = {
	CLEAR, CLEAR, CLEAR, CLEAR
};

main()
{
	atexit(eh);
	flags.f2 = 1;
	flags.f3 = 1;
}

void eh(void)
{
	if (flags.f0 == SET)
		printf("f0 needs cleanup\n");
	if (flags.f1 == SET)
		printf("f1 needs cleanup\n");
	if (flags.f2 == SET)
		printf("f2 needs cleanup\n");
	if (flags.f3 == SET)
		printf("f3 needs cleanup\n");
}

f2 needs cleanup
f3 needs cleanup

