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

Старый и новый стиль заголовков - C++

Восстановить пароль Регистрация
 
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
19.06.2010, 14:06     Старый и новый стиль заголовков #1
Здравствуйте! Хотелось бы разобраться в старом и новом стиле заголовков.

Старый стиль.
C++
1
2
#include <iostrem.h>
#include <math.h>
Новый стиль.
C++
1
2
#include <iostream>
#include <cmath>
Раньше работал только лишь на Borland C++ Builder 6. Сейчас работаю на DevC++, Visual Studio 2008 и на 2010-ом Builder'е. В голове путаница насчет старого и нового стиля заголовков. Где-то работает только старый стиль, где-то только новый, где-то и тот и другой, где-то одни include'ы работают, если написаны по-старому, а другие, - если написаны по-новому.

Запоминать что-ли, в какой среде что работает, а что нет? Или я что-то недопонимаю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
19.06.2010, 19:19     Старый и новый стиль заголовков #2
Пиши ТОЛЬКО в новом стиле
Компиляторов, который понимают только старый стиль избегай - считай что они вымерли
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,691
19.06.2010, 19:34     Старый и новый стиль заголовков #3
На самом деле все просто. В одной из последних версий стандарта языка C++ его стандартная библиотека (включающая стандартную библиотеку C) была помещена в пространство имен std, что отражено в названиях ее заголовочных файлов: у заголовков C++ просто отброшено расширение «.h», а к заголовкам C еще добавлена вначале буква «c».
Причем для обратной совместимости с C-программами оставлены и старые C-заголовки. Они выводят имена, в них объявленные, в глобальное пространство имен. Так, например, в заголовке <cstdio> объявлена функция std::рrintf, а в <stdio.h> имя printf вносится в глобальное пространство имен при помощи объявления using std::рrintf.
Правда, в Microsoft Visual C++ 2008 по умолчанию при любых C-заголовках C-функции не требуют префикса «std::», но это как-то можно поменять настройками среды.
Таким образом, если ваш компилятор не поддерживает пространство имен std, то все заголовки придется писать по-старому. Если же поддерживает, то писать заголовки C++ по-старому не получится, а C-заголовки не рекомендуется стандартом, так как этим вы выносите все объявленные в них имена в глобальное пространство имен.
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
19.06.2010, 20:13  [ТС]     Старый и новый стиль заголовков #4
Еще вопрос: насчет 2010-ого Builder'а. Новую тему создавать не буду, напишу здесь.

Как сделать так, чтобы программа запускалась на других компьютерах?
С Builder 6 вопрос решен, а как поступать в 2010-ом? Ориентировался на слова Dynamic RTL, но для него доступен только вариант "True", "Build with runtimes packages" не нашел.
Или же можно поставить Build Configuration на значение "Release" и забыть обо всех проблемах с запуском?
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
19.06.2010, 21:11     Старый и новый стиль заголовков #5
Цитата Сообщение от Red Planet Посмотреть сообщение
а как поступать в 2010-ом
так же

Цитата Сообщение от Red Planet Посмотреть сообщение
"Build with runtimes packages" не нашел.
третий с низу пункт в настройках

любую настройку легко найти в IDE Insigth (F6)
Yandex
Объявления
19.06.2010, 21:11     Старый и новый стиль заголовков
Ответ Создать тему
Опции темы

Текущее время: 18:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru