Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-std=c99 -Wall -Wextra -Wpedantic -Wshadow
- #include <stdio.h>
- #include <stdlib.h>
- /*
- void printIntBinLE(int val)
- {
- int size = sizeof(val)*8;
- while(size--)
- {
- printf("%d", val >> size & 1 ? 1 : 0);
- }
- }
- */
- void printBinaryLE(void* v, unsigned int s)
- {
- if(!v||s<1)
- {
- printf("error !\n");
- return;
- }
- unsigned char* pv = (unsigned char*) v;
- unsigned int i;
- while(s--)
- {
- i=8;
- while(i--)
- {
- printf("%d", pv[s] >> i & 1u ? 1 : 0);
- }
- }
- printf("\n");
- }
- int main (int argc, char **argv){
- printf("(1)\n----------\n");
- /* 0, 1 */
- enum boolean { NO, YES };
- printf("%d %d\n", YES, NO);
- printf("%s\n", YES ? "true" : "false");
- printf("%s\n", NO ? "true" : "false");
- printf("\n(2)\n----------\n");
- /* February = 2, March = 3, ... */
- enum months { January = 1, February, March, April, May, June, July, August, September, October, November, December };
- printf("%d\n",March);
- printf("%d\n",September);
- enum months month;
- month = December;
- printf("%d\n",month);
- for( unsigned int i = January; i <= December; ++i)
- {
- printf("%d ",i);
- }
- printf("\n\n(3)\n----------\n");
- enum flags {
- FLAG1 = 0x00000001,
- FLAG2 = 0x00000002,
- FLAG3 = 0x00000004,
- FLAG4 = 0x00000008,
- FLAG5 = 0x00000010,
- FLAG6 = 0x00000020,
- FLAG7 = 0x00000040,
- FLAG8 = 0x00000080,
- FLAG9 = 0x00000100,
- FLAG10 = 0x00000200,
- FLAG11 = 0x00000400,
- FLAG12 = 0x00000800
- };
- unsigned int testFlagsA = FLAG1 | FLAG8;
- unsigned int testFlagsB = FLAG1 | FLAG3;
- printf("DEC: %d HEX: %08X BIN: ", testFlagsA, testFlagsA);
- printBinaryLE(&testFlagsA,sizeof(testFlagsA));
- printf("DEC: %d HEX: %08X BIN: ", testFlagsB, testFlagsB);
- printBinaryLE(&testFlagsB,sizeof(testFlagsB));
- printf("%s\n", testFlagsA & FLAG8 ? "true" : "false");
- printf("%s\n", testFlagsB & FLAG8 ? "true" : "false");
- printf("\n(4)\n----------\n");
- typedef enum{
- zero,
- one,
- two,
- three,
- four,
- five,
- six,
- seven,
- eight,
- nine
- }Numbers;
- Numbers num = four;
- printf("%d\n",num);
- printf("\n(5)\n----------\n");
- /*
- enum somename{
- zero,
- one,
- two
- };
- typedef enum somename somename; //identifier can be the same
- somename varA = one;
- enum somename varB = three;
- */
- enum grt{
- Hey = 10,
- Hi = 20,
- Yo = 30
- };
- typedef enum grt geetings;
- geetings varA = Yo;
- printf("%d\n", varA);
- printf("\n(6)\n----------\n");
- /*
- enum eNam{
- left,
- right,
- back,
- forward
- }eName,anotherName,onemoreName;
- */
- enum eNam{
- left,
- right,
- back,
- forward
- }eName;
- eName = forward;
- printf("%d\n\n", eName);
- return 0;
- }
- /*
- output:
- (1)
- ----------
- 1 0
- true
- false
- (2)
- ----------
- 3
- 9
- 12
- 1 2 3 4 5 6 7 8 9 10 11 12
- (3)
- ----------
- DEC: 129 HEX: 00000081 BIN: 00000000000000000000000010000001
- DEC: 5 HEX: 00000005 BIN: 00000000000000000000000000000101
- true
- false
- (4)
- ----------
- 4
- (5)
- ----------
- 30
- (6)
- ----------
- 3
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement