Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Сыроежка
Заблокирован
1

Баги в Visual Studio 2010

16.10.2011, 19:17. Просмотров 2606. Ответов 41
Метки нет (Все метки)

Цитата Сообщение от Van111 Посмотреть сообщение
спасибо Nameless One
если честно то в 6 студии куча глюков, а на 2010 я переходить не хочу она вроде как слишком большие exe создают но ради удобства RAD можно и её заняться
а если я обычные проги буду на dev 5 писать они сильно в скорости выполнения будут 6 студии уступать??????????
В MS VC++ 2010 также не мало глюков! Другое дело, что у вас не такая высокая квалификация, чтобы понять, что вы имеете дело с глюком.

Самый простой глюк MS VC++ 2010 (правда я обнаружил его до установки обновления SP1, так что не знаю, исправлен он уже или нет), это не возможность совершенно корректного определения

C++
1
2
3
4
struct A
{
   int A;
};
 Комментарий модератора 
Сообщения выделены из темы испортился компилятор посмотрите
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2011, 19:17
Ответы с готовыми решениями:

c++, visual studio 2010! 7
Given three natural numbers a, b, c which represent the day, month and year of...

c++, visual studio 2010! 1.
Given real numbers a, b, c, where a is not 0. Find if a quadratic inequality...

c++, visual studio 2010! 6.
Given natural number n. Compute 2 to the power of n. Do not use pow() function....

Visual Studio 2010
как запустить с флехи exe файл программы Си в Visual Studio 2010??

Visual Studio 2010
Вот я пользуюсь Visual Studio 2010, может кто подсказать как в ней...

41
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,531
16.10.2011, 19:19 2
Цитата Сообщение от talis Посмотреть сообщение
А вообще, попробуйте среды, использующие MinGW.
это DEV С++ и есть
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
16.10.2011, 19:26 3
talis,
про dev 5 я имею версию прямо перед dev 5 ну там гдето 4.9.х.х (попробуй их запомни но факт в том что она от них не сильно отстаёт)


Добавлено через 4 минуты
Сыроежка,
а это
Цитата Сообщение от Сыроежка Посмотреть сообщение
struct A { int A; };
впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 19:27 4
Цитата Сообщение от Van111 Посмотреть сообщение
впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
Не-а. В структуре типа A лежит переменная типа int с именем A.
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
16.10.2011, 19:30 5
Цитата Сообщение от talis Посмотреть сообщение
Не-а. В структуре типа A лежит переменная типа int с именем A.
а понятно но это же должно в принципе работать?
0
Сыроежка
Заблокирован
16.10.2011, 19:31  [ТС] 6
Цитата Сообщение от Van111 Посмотреть сообщение
Добавлено через 4 минуты
Сыроежка,
а это


впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
Я же написал, что нужно иметь соответствующую квалификацию, чтобы понять, что написано! У вас квалификация недостаточно высокая. Поэтому именно вы сами говорите глупость! Никакая "еще одна структура" не определяется!
0
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
16.10.2011, 19:31 7
Цитата Сообщение от talis Посмотреть сообщение
Не-а. В структуре типа A лежит переменная типа int с именем A.
а понятно но это же должно в принципе работать?
0
Сыроежка
Заблокирован
16.10.2011, 19:32  [ТС] 8
Цитата Сообщение от Van111 Посмотреть сообщение
а понятно но это же должно в принципе работать?
Об этом и речь, что это совершенно корректный код! А MS VC++ 2010 его не компилирует. Не компилироваться этот код должен лишь в одном случае, когда есть определенный пользователь конструктор.
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 19:33 9
Цитата Сообщение от Van111 Посмотреть сообщение
а понятно но это же должно в принципе работать?
Если изменить имя типа структуры или имя переменной внутри структуры
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,531
16.10.2011, 19:34 10
Говоря о DEV C++, можно говорить о:
Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2
нормальная такая штука, правда компилятор g++ 2004 года, версии 3.4.2

Dev-C++ 5.0 beta 9.2 (4.9.9.2), executable only (2.4 MB)
вообще без компилятора. Новичкам вообще не советую, самостоятельно не удастся установить Mingw. Хотя в принципе к ней можно прикрутить Mingw любой свежести, что я и сделал не без труда.

И вот это вот:
wxDEv-C++
Это для формошлёпства. Работал мало, не понравилось. Для консольной работы тоже подойдёт, в наличии g++ версии 4.5.0 (10-го что ли года)

Так что советую первый вариант. К тому времени, когда ты осознаешь необходимость обновления компилятора(ов) ты сможешь его поменять сам.
0
Сыроежка
Заблокирован
16.10.2011, 19:34  [ТС] 11
Цитата Сообщение от talis Посмотреть сообщение
Если изменить имя типа структуры или имя переменной внутри структуры
Ничего не надо менять. Код корректный. Об этом и идет речь.
0
Bers
Заблокирован
16.10.2011, 19:35 12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Об этом и речь, что это совершенно корректный код! А MS VC++ 2010 его не компилирует. Не компилироваться этот код должен лишь в одном случае, когда есть определенный пользователь конструктор.
Две разных сущности с одинаковым именем - фейл. Нет?
Может быть код корректен с точки зрения стандарта, но что б на такой "глюк" нарваться, это нужно ещё постараться проявить фантазию.
0
talis
793 / 545 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 19:35 13
Цитата Сообщение от Сыроежка Посмотреть сообщение
Ничего не надо менять. Код корректный. Об этом и идет речь.
Я имел ввиду, что в VS2010 будет работать если изменить имя типа структуры или имя элемента структуры.
0
easybudda
Модератор
Эксперт CЭксперт С++
10103 / 6012 / 1507
Регистрация: 25.07.2009
Сообщений: 11,398
16.10.2011, 19:36 14
Цитата Сообщение от Van111 Посмотреть сообщение
Сыроежка,
а это
Цитата Сообщение от Сыроежка Посмотреть сообщение
struct A { int A; };
впринципе "глупое" выражение так как зачем в структуре А делать ещё одну структуру А в которой будет ещё одна структура А и так пока у нас не кончится стэк или оперативка
В принципе уже ответили, картинку добавлю
Баги в Visual Studio 2010

Не вдаваясь в подробности, зачем оно нужно, в принципе должно работать.
0
Сыроежка
Заблокирован
16.10.2011, 20:19  [ТС] 15
Цитата Сообщение от easybudda Посмотреть сообщение
В принципе уже ответили, картинку добавлю
Вложение 100938
Не вдаваясь в подробности, зачем оно нужно, в принципе должно работать.
Вы это откомпилировали с помощью MS VC++ 2010? Может быть мне просто нужно обновить этот пакет? Но и ваш представленный код некорректный, так как имя члена структуры должно скрыватиь имя самой структуры. то есть объявление в main объекта структуры должно уже писаться в виде

C++
1
struct A a;
0
easybudda
Модератор
Эксперт CЭксперт С++
10103 / 6012 / 1507
Регистрация: 25.07.2009
Сообщений: 11,398
16.10.2011, 20:32 16
Цитата Сообщение от Сыроежка Посмотреть сообщение
Вы это откомпилировали с помощью MS VC++ 2010?
Код
andrew@debnout:~/cpp/other$ g++ -o aa aa.cpp
Просто скомпилировал, чтобы показать, что работает.
Цитата Сообщение от Сыроежка Посмотреть сообщение
Но и ваш представленный код некорректный, так как имя члена структуры должно скрыватиь имя самой структуры. то есть объявление в main объекта структуры должно уже писаться в виде
Ничего не понял. С какого бока он не корректный? В майн объявлен объект структуры А с именем а... Вот так корректнее було бы?
C++
1
2
3
4
//...
int main(){
    A b;
//...
0
Сыроежка
Заблокирован
16.10.2011, 20:39  [ТС] 17
Цитата Сообщение от easybudda Посмотреть сообщение
Код
andrew@debnout:~/cpp/other$ g++ -o aa aa.cpp
Просто скомпилировал, чтобы показать, что работает.

Ничего не понял. С какого бока он не корректный? В майн объявлен объект структуры А с именем а... Вот так корректнее було бы?
C++
1
2
3
4
//...
int main(){
    A b;
//...
Так вы компилировали с помощью g++? Это не есть MS VC++ 2010. Я речь вел именно об MS VC++ 2010.
Надо уточнить этот вопрос. На мой взгляд одноименное имя члена структуры должно скрывать имя структуры.

P.S. Возможно, это в свою очередь баг g++, что он позволяет делать такие определения. как A a; вместо struct A a;. Недавно видел вопрос на одном форуме, где очевидно имеется баг g++, если верить автору вопроса, который говорил, что тот код, который он привел, компилируется с помощью g++.
0
OstapBender
584 / 523 / 75
Регистрация: 22.03.2011
Сообщений: 1,585
16.10.2011, 21:02 18
Сыроежка,
это не баг, это возможность языка С++ (Да и С по-моему)
в некоторых случаях "struct" необходимо

C
1
void f(struct f var);
тру
C
1
void f(f var);
не тру

странно. и то и то компилится. по идее 2 не должно.


C
1
2
3
4
5
6
7
8
struct f {
    int x;
};
 
void f() {
    /*struct */ f v;
    v.x=10;
}
вот так точняк не компилится.
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
16.10.2011, 21:07 19
с sp1 тоже не компилируется.
0
easybudda
Модератор
Эксперт CЭксперт С++
10103 / 6012 / 1507
Регистрация: 25.07.2009
Сообщений: 11,398
16.10.2011, 21:09 20
Цитата Сообщение от Сыроежка Посмотреть сообщение
Так вы компилировали с помощью g++?
Ну да. Говорю же - показать, что в принципе такое работает.

Цитата Сообщение от Сыроежка Посмотреть сообщение
Это не есть MS VC++ 2010
Вот с этим не поспоришь!


Цитата Сообщение от Сыроежка Посмотреть сообщение
Возможно, это в свою очередь баг g++, что он позволяет делать такие определения. как A a; вместо struct A a;
Это баг языка С++, в нём при объявленной
C++
1
struct A {/*...*/};
объявления
C++
1
struct A a;
и
C++
1
A a;
практически одно и то же. То, что в структуре имеется одноимённое поле, на правила объявления объектов структуры никаким боком не влияет. Мало того, вот по сути тоже самое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
class A
{
public:
   int A;
};
 
int main(){
    A a;
    a.A = 13;
    
    std::cout << a.A << std::endl;
    
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от OstapBender Посмотреть сообщение
Да и С по-моему
Нет, в С так работать не будет. Там обязательно либо писать struct A a; либо с помощью typedef соответствующий тип объявлять.
0
16.10.2011, 21:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 21:09

Visual Studio 2010
Прошу прощения если написал не туда, отдельного форма по VS не нашел! Люди...

Visual studio 2010
Господа, подскажите, где нужно полазить в опциях студии, чтобы после изменения...

c++, visual studio 2010! 2.
Given a year number. Output the number of days of that year. Example:...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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