[ create a new paste ] login | about

Link: http://codepad.org/M8UkJ2GD    [ raw code | output | fork ]

C, pasted on Dec 6:
#include <stdio.h>
#define useA		(1 << 0)	//0x01
#define useB		(1 << 1)	//0x02
#define useC		(1 << 2)	//0x04

int funcA(void)
{
	printf("A\n");
	return 0;
}

int funcB(void)
{
	printf("B\n");
	return 0;
}

int funcC(void)
{
	printf("C\n");
	return 0;
}

int execute(unsigned char id)
{
	if (id & useA)
	{
		funcA();
	}
	if (id & useB)
	{
		funcB();
	}
	if (id & useC)
	{
		funcC();
	}

	return 0;
}

int main(void)
{
	unsigned char id = 0;

	printf("-- 初期値 --\n");
	execute(id);

	printf("-- useA をONにする --\n");
	id |= useA;
	execute(id);

	printf("-- useA, useB, useC すべてをONにする --\n");
	id |= useA | useB | useC;
	execute(id);

	printf("-- useB だけをOFFにする --\n");
	id &= ~useB;
	execute(id);

	printf("-- useB をもう一回OFFにする --\n");
	id &= ~useB;
	execute(id);

	printf("-- useA, useC をOFFにする --\n");
	id &= ~useA & ~useC;
	execute(id);

	return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- 初期値 --
-- useA をONにする --
A
-- useA, useB, useC すべてをONにする --
A
B
C
-- useB だけをOFFにする --
A
C
-- useB をもう一回OFFにする --
A
C
-- useA, useC をOFFにする --


Create a new paste based on this one


Comments: