Russian Qt Forum
Ноябрь 23, 2024, 15:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: signed/unsigned  (Прочитано 19909 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #15 : Июль 04, 2014, 15:04 »

вставил после объявления строки. теперь да, только с 4 выдает:
Код:
main.cpp(8): warning C4310: cast truncates constant value
без приведения типа выдает C4309 на ту же строку.

вы в Xcode что ли не выполняете Analyze периодически? Подмигивающий
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #16 : Июль 04, 2014, 15:12 »

offtop: Ппц рассуждения.
1: Я ударил лбом об стену. Голова болит. Почему нет предупреждений?
2: Вот предупреждение c WAll!
1: А я взял и ударился затылком с разбегу, нет предупреждения. Где?
2: А вот тут что!
...

Думаю следующим будет "А я положил стенку и на неё темечком с 4 этажа упал" Веселый

Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #17 : Июль 04, 2014, 16:00 »

offtop: Ппц рассуждения.
1: Я ударил лбом об стену. Голова болит. Почему нет предупреждений?
2: Вот предупреждение c WAll!
1: А я взял и ударился затылком с разбегу, нет предупреждения. Где?
2: А вот тут что!
...

Думаю следующим будет "А я положил стенку и на неё темечком с 4 этажа упал" Веселый



Нет, не угадали.. Следующий вопрос будет такой:
Почему "самый строгий" компилятор пропускает это (что недопустимо в с++)
/* отрывок из одного шедевра */:

Код
C++ (Qt)
void SBGlass::disableOpacity()
{
   wGlass_->setGraphicsEffect(&QGraphicsOpacityEffect());
}
 

Верес, не узнаёте?
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Bepec
Гость
« Ответ #18 : Июль 04, 2014, 16:41 »

Потому что можно выстрелить себе в ногу согласно стандарту Улыбающийся
А что не так? Улыбающийся

PS предлагайте Улыбающийся
« Последнее редактирование: Июль 04, 2014, 16:46 от Bepec » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #19 : Июль 04, 2014, 16:46 »

А что не так? Улыбающийся
Нет предупреждения? Улыбающийся
Записан
Bepec
Гость
« Ответ #20 : Июль 04, 2014, 17:06 »

Мне и не надо Улыбающийся
Лично я прекрасно понимаю что объект уничтожится и всё будет хорошо Веселый Ведь другого способа убрать эффект овродя нет Веселый
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #21 : Июль 04, 2014, 17:20 »

Мне и не надо Улыбающийся
Конечно, ведь завсегда лучше:
PS я сам бился с этой проблемой ммм... дня три наверно Веселый Пытался понять почему то работает, то не работает Веселый

Три то дня всего... Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Июль 04, 2014, 17:35 »

// дустовские садисты совсем затюкали мальчонку с перифЕрии  Плачущий
Записан
Bepec
Гость
« Ответ #23 : Июль 04, 2014, 18:55 »

Три для разбираться в том, что делал впервые - это очень хорошо Веселый И я этим горжусь Улыбающийся

Вопрос к Old:
Цитировать
Конечно, ведь завсегда лучше:
- что вы этим имели в виду? Что код плохой? Что присутствует незримая ошибка? Что я делаю что-то неправильно?

Подскажите тогда как правильно и какая у меня ошибка.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #24 : Июль 04, 2014, 19:12 »

Код плохой, но говорим мы про компиляторы.
Плохо то, что компилятор вас не предупредил о не однозначность и молча сделал как ему захотелось. Вы же разбираясь с этим потратили три дня в пустую. Выдай он предупреждение, такого бы не случилось.
Записан
Bepec
Гость
« Ответ #25 : Июль 04, 2014, 19:26 »

Не соглашусь с вами Улыбающийся
1) Компилятор сделал всё правильно. Эти правила просты и понятны, хоть и есть неоднозначность, но не более того.
Тут виновен именно я.
2) Компилятор не может предупреждать о всём и вся, к сожалению. Точнее может, но это отразится на других его качествах и возможностях. Это неизбежное зло - программист должен понимать, что он делает. Пусть даже в общих чертах.
3) Если бы он выдавал варнинги во всех сомнительных случаях, то я бы просто не нашёл нужный варнинг в "куче" остальных. На ваш взгляд мой код плохой, компилятор бы ругался ещё больше, мб Улыбающийся

PS а почему код плохой? поправьте уж, чтобы я не выкладывал более такой плохой код Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #26 : Июль 04, 2014, 20:15 »

Код
C++ (Qt)
char test[10];
test[0] = 0xC3;
if (test[0] == 0xC3) {
..
Вот хоть бы один спросил "ну как же так, почему же переменная не равна только что присвоенному значению?". А ведь ответа так и не прозвучало Улыбающийся

1) Компилятор сделал всё правильно. Эти правила просты и понятны, хоть и есть неоднозначность, но не более того
Так поведайте нам эти "простые и понятные" правила которые ведут к такому чудесному результату

Тут виновен именно я.
То да - и не только тут  Улыбающийся


Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #27 : Июль 04, 2014, 20:19 »

1) Компилятор сделал всё правильно. Эти правила просты и понятны, хоть и есть неоднозначность, но не более того.
Нельзя быть "чуть-чуть беременной". Улыбающийся
Либо компилятор все сделал правильно и не однозначность не возникла, либо...

2) Компилятор не может предупреждать о всём и вся, к сожалению. Точнее может, но это отразится на других его качествах и возможностях. Это неизбежное зло - программист должен понимать, что он делает. Пусть даже в общих чертах.
Он должен, просто обязан предупреждать обо всем. О каждой мелочи.
Много крупных проектов собираются с опцией компилятора "предупреждение как ошибка", т.е. их собрать даже нельзя, пока разработчик не исправит не однозначность. Так по мима всех варнингов от компилятора, программисты использует статические анализаторы, которые проверяют код и сыпят своими предупреждениями.

3) Если бы он выдавал варнинги во всех сомнительных случаях, то я бы просто не нашёл нужный варнинг в "куче" остальных.
Так у вас не должно быть столько предупреждений в программе, исправьте их и сможете находить новые. Улыбающийся

PS а почему код плохой? поправьте уж, чтобы я не выкладывал более такой плохой код Улыбающийся
В этой теме я не увидел не одной строчки вашего кода. Про что вы меня все время спрашиваете?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #28 : Июль 04, 2014, 20:21 »

Вот хоть бы один спросил "ну как же так, почему же переменная не равна только что присвоенному значению?". А ведь ответа так и не прозвучало Улыбающийся
будем обсуждать неявные приведения типов? первый операнд — отрицательное число, второй — положительное, вот они и неравны Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #29 : Июль 04, 2014, 20:31 »

будем обсуждать неявные приведения типов? первый операнд — отрицательное число, второй — положительное, вот они и неравны Улыбающийся
На мой взгляд такое объяснение поверxностно. Но послушаем Вереса, посвятившего этой проблеме 3 дня
Записан
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 23.