Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2009, 12:01   #21
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Дело в том, что Visual Studio и Builder - компиляторы языка C++, который совместим с С89 (в смысле старые программы в них более-менее компилируются). C99 ушел в сторону - т. е. компиляторы C++ уже не обязательно поймут программу на C99.
Но мне не приходилось слышать, что кто-то на практике использует C99.
вы сравниваете стандарты языка СИ с языком C++. странно.

Цитата:
Но мне не приходилось слышать, что кто-то на практике использует C99
все бывает в первый раз. вот небольшой пример
Код:
int main() {
   int a = 10;
   printf("%d\n", a);
   int b = 20;
   printf("%d\n", b);

   return 0;
}
этот код успешно скомпилируется стандартом c99, но не стандартом С89. В студии да, по текущую версию используется стандарт с89 языка СИ (не плюсов).
я уже умолчу о неявных преобразованиях, массивах переменной длины и тп, что имеется в с99.

Цитата:
Кстати, на сколько я помню, Delphi всеми силами старается оградить кодера от тонкостей ООП.
если только имеется ввиду компонентная модель. свой же компонент без знаний ооп не напишешь. поэтому ограждаются только формошлеперы, которых в делфе пруд пруди.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.08.2009, 12:14   #22
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
этот код успешно скомпилируется стандартом c99, но не стандартом С89.
А почему он на соберется стандартом C89?
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 12:18   #23
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
А почему он на соберется стандартом C89?
C89 не поддерживает объявления переменных посреди ф-ции.

Цитата:
вы сравниваете стандарты языка СИ с языком C++. странно.
А что странного?) С++ имеет обратную совместимость с С89, в то время, как в С99, насколько я помню добавили несколько ключевых слов, которых в С++ нет
netrino вне форума Ответить с цитированием
Старый 14.08.2009, 12:21   #24
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2psycho-coder
в стандарте c89 разрешалось объявлять переменные только в самом начале функции.

в с89 работать будет только так:

Код:
int main() {
   int a = 10;
   int b = 20;
   printf("%d\n", a);
   printf("%d\n", b);

   return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.08.2009, 12:25   #25
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2netrino
Цитата:
А что странного?) С++ имеет обратную совместимость с С89, в то время, как в С99, насколько я помню добавили несколько ключевых слов, которых в С++ нет
согласен, но у плюсов ведь свои стандарты (ANSI C++ 1998, ANSI C++ 2003), логичнее было бы их указать)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.08.2009, 12:40   #26
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
в стандарте c89 разрешалось объявлять переменные только в самом начале функции.
Ааа.. Забыл, забыл....((
в С++ вроде можно где угодно создать. Если не ошибаюсь. По крайней мере у меня так несколько прог работает.
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 12:42   #27
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2psycho-coder не ошибаешься)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.08.2009, 15:29   #28
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
в стандарте c89 разрешалось объявлять переменные только в самом начале функции.
Имелось ввиду, что вот так
Код:
int func()
int a;
int b;
{
   //place your code here
}
Но это старый стиль, и большинством вндовых компиляторов не поддерживается. А вот gcc и g++ хавают за милую душу.
MaTBeu вне форума Ответить с цитированием
Старый 14.08.2009, 15:32   #29
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Так передаются параметры функции
Код:
int func(a, b);
int a;
int b;
{
}
Но тут компилятор заранее не знает какой тип у параметров. Поэтому, такой способ не рекомендуется, подробности не помню.
psycho-coder вне форума Ответить с цитированием
Старый 16.08.2009, 22:08   #30
U-S
Пользователь
 
Регистрация: 02.08.2009
Сообщений: 24
По умолчанию

Насколько я понял компилятор в таком случае считает тип int по умолчанию, и вот этого:

Код:
int a;
int b;
можно даже не писать. Но я могу ошибаться.
U-S вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оператор while tim777777 Помощь студентам 3 09.03.2009 19:57
Оператор Рітка-кулеметчиця Помощь студентам 1 02.02.2009 08:49
оператор >> в C++ sum42 Помощь студентам 1 24.12.2008 17:27
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10
Оператор WITH Enko Общие вопросы Delphi 1 20.09.2007 20:36