реклама на сайте
подробности

 
 
> bool "третье состояние"
HEX
сообщение Jul 22 2009, 07:34
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 25-11-04
Из: Тула
Пользователь №: 1 228



Код
#include <stdbool.h>

int main()
{
  bool B;
  B = 13;                      //B = 1
  B = !B;                      //B = 0
  
  unsigned char* Ptr;
  Ptr = (unsigned char*)(&B);
  *Ptr = 13;                   //B = 13
  
  bool B2;
  B2 = B;                      //B2 = 12
  B2 = !B;                     //B2 = 13
  return 0;
}

Почему при присваивание непосредственно числа все нормально ( B = 13 ), а при присваивании другово bool ( B2 = B ) мусор остается?
Так и должно быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Oldring
сообщение Jul 22 2009, 08:47
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(HEX @ Jul 22 2009, 11:34) *
Ptr = (unsigned char*)(&B);
*Ptr = 13; //B = 13

...

Так и должно быть?


Явное преобразование типов указателей - это всегда очень опасная операция с возможно непредсказуемыми побочными эффектами. Ответственность за правильный результат лежит целиком на программисте, который должен понимать что делает. Компилятор же больше ни за что не отвечает. Если Вы не понимаете что хотите сделать и как будет результат интерпретирован - зачем пользуетесь такой опасной операцией? Взяли спички в руки, поигрались и удивляетесь, откуда пожар...


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- HEX   bool "третье состояние"   Jul 22 2009, 07:34
- - AHTOXA   Вероятно, компилятор производит преобразования тип...   Jul 22 2009, 07:47
|- - HEX   явное преобразование типа тоже не помогает:КодB2 =...   Jul 22 2009, 08:34
|- - AHTOXA   Цитата(HEX @ Jul 22 2009, 14:34) явное пр...   Jul 22 2009, 08:40
- - Xenia   Цитата(HEX @ Jul 22 2009, 10:34) Почему п...   Jul 22 2009, 08:38
|- - HEX   Цитата(Xenia @ Jul 22 2009, 12:38) Таким ...   Jul 22 2009, 08:56
|- - Xenia   Цитата(HEX @ Jul 22 2009, 11:56) выводит ...   Jul 22 2009, 11:00
||- - KRS   Цитата(Xenia @ Jul 22 2009, 15:00) Это по...   Jul 22 2009, 21:02
|- - tag   Цитата(HEX @ Jul 22 2009, 11:56) Если бы ...   Jul 22 2009, 12:13
|- - HEX   я в этом вижу потенциальную проблему, например, пр...   Jul 22 2009, 10:28
|- - Сергей Борщ   Цитата(HEX @ Jul 22 2009, 13:28) я в этом...   Jul 22 2009, 11:11
||- - HEX   Цитата(Сергей Борщ @ Jul 22 2009, 15:11) ...   Jul 22 2009, 14:57
||- - Oldring   Цитата(HEX @ Jul 22 2009, 18:57) А явное ...   Jul 22 2009, 15:34
|- - Oldring   Цитата(HEX @ Jul 22 2009, 14:28) я в этом...   Jul 22 2009, 11:17
- - sergeeff   Цитата(HEX @ Jul 22 2009, 11:34) Код#incl...   Jul 22 2009, 17:15
|- - ReAl   Цитата(sergeeff @ Jul 22 2009, 20:15) Суд...   Jul 22 2009, 19:52
|- - Сергей Борщ   Цитата(ReAl @ Jul 22 2009, 22:52) Код b1 ...   Jul 22 2009, 23:27
- - sensor_ua   Использование выражений типа Кодif(a == true...   Jul 23 2009, 08:28


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 00:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016