1. C++ / Говнокод #16986

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    int boolToInt(bool b)
    {
    	bool * boolPtr = &b;
    	char * boolToCharPtr = reinterpret_cast<char *>(boolPtr);
    	char * resultCharPtr;
    	resultCharPtr = (char*) malloc(4);
    
    	for (int i = 0; i < sizeof(int); i++)
    	{
    		if (i == 0)
    		{
    			resultCharPtr[i] = boolToCharPtr[0];
    		}
    		if (i == 1)
    		{
    			resultCharPtr[i] = 0x00;
    		}
    		if (i == 2)
    		{
    			resultCharPtr[i] = 0x00;
    		}
    		if (i == 3)
    		{
    			resultCharPtr[i] = 0x00;
    		}
    	}
    
    	int * intPtr = reinterpret_cast<int *> (resultCharPtr);
    	return *intPtr;
    }

    Удобная функция для конвертации bool в int

    Запостил: lazorg, 29 Октября 2014

    Комментарии (3) RSS

    • неа, не верю. только специально такое можно придумать
      Ответить
    • А где вопли про непереносимость на систему с другим индейцем?
      Ответить
      • reinterpret_cast это почти всегда непереносимость.
        Ответить

    Добавить комментарий