Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C от Borland лучше, т.к.... 
:(
    Опции темы
Wowa
  Дата 2.6.2002, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Так как C от Borland существует также под *никс, в отличие от VC.
Все это  - ИМХО :)

Я не прав?
PM WWW   Вверх
Vit
Дата 2.6.2002, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Как я понимаю они совсем разные, MS ближе к оси, лучше и напрямую интегрирован в винды, Builder - более платформо независим, с более богатыми библиотеками компонентов, но это достигается более сильной инкапсулированностью и вследствии этого большей тяжеловестностью. Собственно Builder больше похож на среду для быстрой разработки навороченных интерфейсов, а VC гораздо оптимален для разработки системных вещей.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
suborg
Дата 3.6.2002, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



Не думаю, что это - хороший вариант... Под никсами практически стандарт - GNU C, а он полностью соответствует спецификации, определяемой комитетом по С++. Борландовский не соответствует. Так что исходники Борландовские не портируются в GNU, то есть уже как бы нехорошо в никсах становится.
Пример: в борланде переменная, созданная внутри объявления цикла существует до конца блока, а в GNU - до конца цикла.
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 3.6.2002, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Цитата(suborg @ 03.6.2002, 10:23)
Не думаю, что это - хороший вариант... Под никсами практически стандарт - GNU C, а он полностью соответствует спецификации, определяемой комитетом по С++. Борландовский не соответствует. Так что исходники Борландовские не портируются в GNU, то есть уже как бы нехорошо в никсах становится.

Borland C++ - полностью ANSI совместимый компилятор. Если хотите сдедать полностью переносимое приложение ставте галочку на ANSI C++ и спокойно переносите. Но уже без VCL. Другой вариант. Сейчас пока создавайте приложения  для Windows используя CLX - межплатформенный аналог VCL. Во второй половине 2002 года Borland выпустит среду C++  для  Linux. Переносимость на уровне исходников.
Цитата(suborg @ 03.6.2002, 10:23)

Пример: в борланде переменная, созданная внутри объявления цикла существует до конца блока, а в GNU - до конца цикла.

Не понял, что такое конец цикла в данном контексте. Или понимается, что переменная сущестует пока не закончится перебор? Если так то это класс!!!.Это  что-то новое в стандарте С++. Страструп отдыхает. Видимость локальной переменной всегда и везде  определялась блоком ( на всякий случай  это скобочки в цикле :) )   Ты хочешь сказать что твой GNU работать следующим образом

for(int i = 0; i <1; ++)
{
   int LocalValue = 0;
   if (!i ) LocalValue = 5;
   cout << LocalValue << endl;
}
GNU  
5
5
Borland (и ANSI C++)
5
0
Если я не правильно понял, поясни на этом примере до куда доживает переменная  LocalValue




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
suborg
Дата 3.6.2002, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



Сейчас я поясню:

for(int i=10; --i>=0;)
{
ля ля тополя
}

if(i>=0) ля ля тополя

С точки зрения BC всё в порядке, но на самом деле переменная i должна перестать существовать за рамками блока цикла, и в if её уже не будет видно
PM MAIL WWW ICQ   Вверх
Wowa
Дата 3.6.2002, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



i - не должна быть за пределами цикла, если по правилам :)
PM WWW   Вверх
Vit
Дата 3.6.2002, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Кстати Билдер заметив такую ситуацию честно предупреждает о том чтобы не надеялись на то что значение i будет именно таким, каким его ожидают.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 4.6.2002, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Мужики я все понял :notify. Вы работаете на левом контрабандном Builder, сделанном  в Китае!  Во всяком случае у меня C++Builder 5  на такую конструкцию  

int main(int argc, char* argv[])
{

         int a[10];
         for (int i = 0; i < 10; i++)
                 a[i] = i;

         i = 12;
}
Четко выдает ошибку в строке "i=12" как и положено в соответствии ANSI C++
[C++ Error] Unit1.cpp(19): E2451 Undefined symbol 'i'


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 4.6.2002, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Цитата(suborg @ 03.6.2002, 20:23)
for(int i=10; --i>=0;)

Да, и небольшое замечание. Если хочешь использовать for таким образом, то проще написать  
for(int i = 10; i--;)


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
suborg
Дата 4.6.2002, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



Во, мазово :)
спасибо.
Люблю компактные исходники.
Вещи типа
cout<<(i?"true":"false");
тоже приято иногда влепить :)
главное чтобы читаемость кода не разрушилась
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 10.6.2002, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Цитата(suborg @ 03.6.2002, 20:23)
Сейчас я поясню:

for(int i=10; --i>=0;)
{
ля ля тополя
}

if(i>=0) ля ля тополя

С точки зрения BC всё в порядке, но на самом деле переменная i должна перестать существовать за рамками блока цикла, и в if её уже не будет видно

Похоже  это не к Builder, а к VC++. Вот например какую информацию я отловил в RU.CBUILDER
Цитата

From: "Anton Batenev" <[email protected]>

Переношу проект из стройки в VC

Код в стройке:

for (int i=0; i<10; i++) {...}
for (int i=0; i<50; i++) {...}

компилится нормално (а как же иначе(!)), но вот в VC вылетает ошибка
"...Multiple Declaration i...".
Меняю в VC на следующий код:

for (int i=0; i<10; i++) {...}
for (i=0; i<50; i++) {...} // без int !!!!

компиляция проходит на ура...

Вопрос:
   Почему? Ведь во втором цикле переменная должна быть локальной для
цикла... а получается, что однажды объявленная в цикле, она становится
локальной для функции...



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 10.6.2002, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Вот нашел интересную информацию по дальнейшему развитию компилятора Borland С++  (по результатам конференции BorCon 2002)  
Цитата

"On the C++ front, we heard that Borland is working on a next generation
Borland C++ compiler, which is a 3-phase (plug-in) compiler with the
possibility to add other source code definitions (other than C++) at the
front-end, and other code generation definitions (other than Intel object
code) on the back-end. As an example, ARM code generation was mentioned.
On the Mobile front, we saw a new C++ environment for mobile devices (codename
Edison). The first version is actually a plug-in for C++Builder, and will be
available in the middle/third quarter of 2002. The second version will use the
Galileo IDE (the .NET Development Studio that will also be used for Delphi for
.NET), and will contain the Borland ARM C++ compiler (once that's ready), the
Mobile CLX (that's a new one), and target Nokia 60 SDK and other phones. A
target date of Q1 2003 was mentioned, but I doubt if that is a serious target,
since both the Galileo IDE and the Borland ARM C++ compiler will probably take
longer to complete."

И примерный перевод одной из наиболее интресных будущих возможностей
Цитата

На направлении С++, мы услышали, что Borland работает над следующей версией С++ компилятора, который является трехэтапным встроенным компилятором с возможностью  добавления других языковых конструкций(отличных от С++) на первом этапе, и перенастройки  генерации кода( отличной от Интеловского объектного кода) на последнем этапе.

Т.е появляется возможность определять свои языковые конструкции, которые , я так понял, будут преобразованы после первого этапа в стандартный С++ , и на последнем  этапе не трогая самого компилятора получать нужный код (MSIL, например)


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.