Форум программистов, компьютерный форум CyberForum.ru

Почему нет варнинга на использование неиниц. переменной? - C++

Войти
Регистрация
Восстановить пароль
 
Доктор ТуамОсес
Заблокирован
18.06.2009, 15:43     Почему нет варнинга на использование неиниц. переменной? #1
C++
1
2
3
4
5
6
    float  DD ;
float  WW ;
float * float_WW = &WW      ; // Берём адрес WW но при этом WW остаётся не инициализированной
        
cout << " DD == " << DD << endl ; // warning C4700: local variable 'DD' used without having been initialized
cout << " WW == " << WW << endl ; // Нет почему-то варнинга,  что переменная WW юзается без инициализации
Нет почему-то варнинга, что переменная WW юзается без инициализации
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2009, 15:43     Почему нет варнинга на использование неиниц. переменной?
Посмотрите здесь:

Использование переменной с других файлов C++
Использование приватной переменной C++
C++ Использование переменной из другого файла
Использование одной переменной C++
C++ Использование переменной, определенной в 1 функции, в другой.
C++ Ультиматум варнинга
C++ Использование файла в качестве переменной
C++ Использование неинициализированной локальной переменной
C++ Использование в CPP переменной, описанной в H
C++ Использование неинициализированной переменной
Использование static переменной через extern C++
Заменить break на использование булевой переменной C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
18.06.2009, 16:14     Почему нет варнинга на использование неиниц. переменной? #2
Выдача варнингов зависит от текущей настройки компилятора.
Например, GCC с опцией -Wall сразу же это фиксирует
Код
[serg@localhost C]$ g++ test.cpp -o test -Wall
test.cpp: In function ‘int main()’:
test.cpp:8: предупреждение: неиспользуемая переменная ‘float_WW’
test.cpp:10: предупреждение: ‘DD’ is used uninitialized in this function
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
18.06.2009, 16:26     Почему нет варнинга на использование неиниц. переменной? #3
Ворнинга нет, потому что было взятие адреса, которое в общем случае означает, что по этому адресу могли и записать что-то. gcc ну уровнях без оптимизаций возможно и не отловит ситуацию, что по взятому указателю записей не было. Но на уровнях с оптимизациями может и отловит
Доктор ТуамОсес
Заблокирован
19.06.2009, 12:54  [ТС]     Почему нет варнинга на использование неиниц. переменной? #4
Цитата Сообщение от Gravity Посмотреть сообщение
Выдача варнингов зависит от текущей настройки компилятора.
Например, GCC с опцией -Wall сразу же это фиксирует
Код
[serg@localhost C]$ g++ test.cpp -o test -Wall
test.cpp: In function ‘int main()’:
test.cpp:8: предупреждение: неиспользуемая переменная ‘float_WW’
test.cpp:10: предупреждение: ‘DD’ is used uninitialized in this function
Не вижу. Где варнинг относительно переменной WW?

Добавлено через 19 часов 45 минут 5 секунд
Видать просто MS VC++ недостаточно продвинутый компилятор. Этот компилятор выдал варнинги в обоих случаях
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
19.06.2009, 13:56     Почему нет варнинга на использование неиниц. переменной? #5
В 3-м посте я тебе уже объяснил. Компилятор, который "этот компилятор" - это gcc-4.1.2, который запускается с опциями оптимизаций
Yandex
Объявления
19.06.2009, 13:56     Почему нет варнинга на использование неиниц. переменной?
Ответ Создать тему
Опции темы

Текущее время: 02:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru