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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2011, 18:24   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Обойти недостатки C(перед C++)

ЭВМ... Новый курс - новый препод. Всегда прогал на C++, а теперь он заставляет писать на C, аргументируя это тем, что мол некоторые системы не поддерживают C++...
Соответственно вопрос: что из этого можно как-то обойти?
1) Объявления переменных в середине код (в цикле for например)
2) new/delete
3) Работа с потоками (iostream/fstream)
4) Указатели (мелочь, но приятно)
TwiX вне форума Ответить с цитированием
Старый 09.09.2011, 18:29   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
ЭВМ... Новый курс - новый препод. Всегда прогал на C++, а теперь он заставляет писать на C, аргументируя это тем, что мол некоторые системы не поддерживают C++...
Соответственно вопрос: что из этого можно как-то обойти?
1) Объявления переменных в середине код (в цикле for например)
2) new/delete
3) Работа с потоками (iostream/fstream)
4) Указатели (мелочь, но приятно)
1. Только в начале функции
2. new -> malloc, delete -> free
3. printf, scanf, fprintf, fscanf
4. Ээээ, а что с ними не так в С?
BOBAH13 вне форума Ответить с цитированием
Старый 09.09.2011, 18:39   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Может я неправильно выразился, но я имел в виду, можно ли использовать эти функции в C.
malloc бесит. printf'ы вообще ппц...
4. Нельзя, чтоб функция принимала ссылку (да, имел в виду ссылки)
TwiX вне форума Ответить с цитированием
Старый 09.09.2011, 18:41   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
Может я неправильно выразился, но я имел в виду, можно ли использовать эти функции в C.
malloc бесит. printf'ы вообще ппц...
4. Нельзя, чтоб функция принимала ссылку (да, имел в виду ссылки)
Нет, да собственно меняется на самом деле, очень мало.
BOBAH13 вне форума Ответить с цитированием
Старый 09.09.2011, 20:22   #5
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
Нет, да собственно меняется на самом деле, очень мало.
Несогласен. Для того, чей родной С++ меняется почти все.
Цитата:
некоторые системы не поддерживают C++
Можете пояснить?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 09.09.2011, 22:37   #6
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
1. Только в начале функции
У меня компилилось по-всякому.

Цитата:
Сообщение от TwiX Посмотреть сообщение
Может я неправильно выразился, но я имел в виду, можно ли использовать эти функции в C.
malloc бесит. printf'ы вообще ппц...
4. Нельзя, чтоб функция принимала ссылку (да, имел в виду ссылки)
Пишите
Код:
typedef struct
{
// данные
} MY_CLASS;

// конструктор
MY_CLASS * create(/* параметры конструктора */);
// деструктор
void destroy(MY_CLASS * obj);
Пишите свои велосипе..., т.е. потоки.

4. Нельзя. Вместо них указатели.

Цитата:
Сообщение от Syuf Посмотреть сообщение
Можете пояснить?
Не во всех системах (например, линуксовых) установлен цпп компилятор из коробки, зато везде есть си.


А почему не спросили, как обойти невозможность перегрузки, отсутствие классов, засорение пространства кучей функций для работы с каждой структурой?

Последний раз редактировалось Carbon; 09.09.2011 в 22:47.
Carbon вне форума Ответить с цитированием
Старый 10.09.2011, 20:57   #7
mikillskegg
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 36
По умолчанию

1. В случае современных компиляторов (напр., gcc) можно объявлять переменные в середине функции. Можно объявлять и в for, это поддерживается С99, но об этом нужно отдельно указать в опциях компиляции.
2. Любой серьезный программист ДОЛЖЕН знать С.
mikillskegg вне форума Ответить с цитированием
Старый 10.09.2011, 21:06   #8
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от mikillskegg Посмотреть сообщение
2. Любой серьезный программист ДОЛЖЕН знать С.
Кто сказал?
И чем "серьезный" программист отличается от шутливого?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 10.09.2011, 21:32   #9
mikillskegg
Пользователь
 
Регистрация: 02.04.2011
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Кто сказал?
И чем "серьезный" программист отличается от шутливого?
1. Кто доказал обратное?
2. Тем, что не задает глупые вопросы.
mikillskegg вне форума Ответить с цитированием
Старый 10.09.2011, 21:42   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
1. Кто доказал обратное?
такая вещь должна быть доказана в прямую, а не от противоположного.
многие живут без этого и все нормально.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обойти ограничение panzergto Microsoft Office Excel 1 03.04.2010 15:46
3 Идеологии-достоинства и недостатки Levsha100 Свободное общение 44 23.06.2009 23:01