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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
#1

Баг или фича - C++

19.12.2012, 07:05. Просмотров 1107. Ответов 20
Метки нет (Все метки)

решил проверить на своем VS 2008
присвоение в сравнении
написал
C++
1
2
3
char buf[100];
char *buf1;
if(buf1=buf)
все прошло никакого предупреждения

написал так
C++
1
2
3
char buf[100];
char *buf1;
if(buf1=0x05)
ошибка не может привести int к указателю, все правильно

написал так
C++
1
2
3
char buf[100];
char *buf1;
if(buf1=(char*)0x05)
опять все в порядке

уровень предупреждений
Уровень 3 (/W3)
вот и думаю что это?

Не по теме:

хотел создать тему в экспертах, не получилось(хотя вопрос к экспертам)

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 07:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Баг или фича (C++):

std::regex : баг на сайте или баг компилятора? - C++
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через 35 секунд компилятор gcc 4.8

Баг компилятора или я дурак? - C++
До:http://www.cyberforum.ru/attachment.php?attachmentid=840160&stc=1&d=1496427343 ...

Ошибка или баг в Dev C++? - C++
помогите разобраться: вот простой код #include <cstdlib> #include <iostream> using namespace std; class card { public: ...

Баг компилятора? Или я чего то не догоняю? - C++
Компилил в 2008 студии. Вопрос: ПОЧЕМУ ЭТОТ КОД КОМПИЛИРУЕТСЯ? class Bee { private: template<class Foo2> Bee&...

Ввод/вывод баг или нет? - C++
#include <iostream> #include <iterator> #include <string> using namespace std; ostream_iterator<string> oo(cout); ...

Баг VS или как? Функция в многофайловом приложении - C++
#include "function.h" int main(){ LoadFileToStack(); cout << endl; st return 0; } void LoadFileToStack() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
19.12.2012, 11:25  [ТС] #16
Цитата Сообщение от Croessmah Посмотреть сообщение
Это абсолютно лекальная инструкция по мнению компилятора и предупреждать о ней нет необходимости,
хорошо тогда почему CodeVisionAVR
выдает
possibly incorrect assignment
пытался найти в стандарте как должен вести себя компилятор, но не нашел( заблудился в 800 страницах)

Цитата Сообщение от Croessmah Посмотреть сообщение
Это само собой, ибо инструкция сама по себе должна использоваться внутри выражения. Иначе она просто не имеет смысла
здесь я погорячился насчет ошибки
действительно с точки зрения языка все нормально
Цитата Сообщение от ValeryS Посмотреть сообщение
с точки зрения языка конечно не ошибка, а с точки зрения алгоритма
0
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
19.12.2012, 11:28 #17
Цитата Сообщение от ValeryS Посмотреть сообщение
хорошо тогда почему CodeVisionAVR выдает
Потому что так захотели его разработчики
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
19.12.2012, 11:38 #18
C++
1
2
3
4
5
int main()
{
   int i = 0;
   if (i = 5);
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp
forever@pterois:~/My_pro1/cpp_pro$ ./new
 
 
forever@pterois:~/My_pro1/cpp_pro$ clang++ -o new new.cpp
new.cpp:4:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
   if (i = 5);
       ~~^~~
new.cpp:4:10: note: place parentheses around the assignment to silence this warning
   if (i = 5);
         ^
       (    )
new.cpp:4:10: note: use '==' to turn this assignment into an equality comparison
   if (i = 5);
         ^
         ==
new.cpp:4:14: warning: if statement has empty body [-Wempty-body]
   if (i = 5);
             ^
new.cpp:4:14: note: put the semicolon on a separate line to silence this warning [-Wempty-body]
2 warnings generated.
Полагаю нечто подобное этой опции есть и в MSVC.
Ах ну да. Выше было же уже.
Тогда

C++
1
#pragma warning (4:4706)
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
19.12.2012, 11:43  [ТС] #19
Цитата Сообщение от defer Посмотреть сообщение
Потому что так захотели его разработчики
это я должен на каждого разработчика оглядываться
Цитата Сообщение от ForEveR Посмотреть сообщение
Полагаю нечто подобное этой опции есть и в MSVC.
есть как выяснилось 4 уровень
но все таки стандарт регламентирует поведение компилятора при присвоении в if или нет?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
19.12.2012, 11:45 #20
ValeryS, Стандарт вообще не регламинтирует warning-и. Если это не ошибка однозначно - значит не регламентировано.
1
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
19.12.2012, 11:48  [ТС] #21
Цитата Сообщение от ForEveR Посмотреть сообщение
Стандарт вообще не регламинтирует warning-и
вот это и хотел узнать
в каждой палатке свои порядки
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2012, 11:48
Привет! Вот еще темы с ответами:

Ошибка или баг Visual Studio 2015? - C++
Кто сталкивался с проблемой когда после сборки программы, зависает Visual? Даже пустой проект не может запустить, хотя раньше запускал....

помогите определить баг или недочёт в программе. - C++
Задача ввести с клавиатуры массив и вывести на экран наибольший его элемент. Проблема заключается в if когда s<mas он всё время...

Баг asio? или баг TCP стека? - C++
всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента,...

Баг или так задумано? Фишка с кодировкой файлов компиляции - C++
Visual C++ 2013 Express. От изменения кодировки созданных .cpp файлов будет зависеть то как выводятся русские буквы. Никогда раньше не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.12.2012, 11:48
Ответ Создать тему
Опции темы

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