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

В чём разница между заголовками <c***> и <***.h>? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 03:10     В чём разница между заголовками <c***> и <***.h>? #1
Пробовал несколько несложных примеров применения обоих вариантов. Результат выполнения идентичен. Компилятор никаких предупреждений не выдавал. Так в чём-же собственно разница? Ну не даром ведь переписали для С++ стандартные библиотеки С.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
16.10.2012, 04:29     В чём разница между заголовками <c***> и <***.h>? #2
фактически ничем
<***> просто делает больший акцент на том, что хедер может не быть файлом (в отличии от *.h, который явно обозначает расширение)
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.10.2012, 04:43     В чём разница между заголовками <c***> и <***.h>? #3
alex_x_x, имеется ввиду libc'шные cname vs name.h.
xtorne21st, а открыть почитать никак?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
16.10.2012, 06:02     В чём разница между заголовками <c***> и <***.h>? #4
xtorne21st, разницы в них нет для нас. Однако, .h-файлы сохранились от C, с..-файлы - это C++ хедеры. Поэтому, если пишешь на C++, пиши ctime, иначе time.h.

p.s Мог напутать с тем, что ctime наоборот у C, а .....h у C++, но это не суть важно, ибо основная информация предоставлена. Сам когда-то заинтересовался.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,139
Записей в блоге: 26
16.10.2012, 11:33     В чём разница между заголовками <c***> и <***.h>? #5
Разница в том, что, *.h в будущем скорее всего похерят для Си++, а сейчас они поддерживаются для совместимости
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 11:48     В чём разница между заголовками <c***> и <***.h>? #6
Цитата Сообщение от nexen Посмотреть сообщение
пиши ctime, иначе time.h.
ctime пишется потому, что C означает СИ, т.е. библиотека досталась в наследство от языка Си
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.10.2012, 11:56     В чём разница между заголовками <c***> и <***.h>? #7
c* хедеры оборачивают содержимое *.h в std
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.10.2012, 12:04     В чём разница между заголовками <c***> и <***.h>? #8
Цитата Сообщение от Jupiter Посмотреть сообщение
c* хедеры оборачивают содержимое *.h в std
bingo!
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 13:28  [ТС]     В чём разница между заголовками <c***> и <***.h>? #9
Цитата Сообщение от alkagolik Посмотреть сообщение
xtorne21st, а открыть почитать никак?
Что открыть и где почитать?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:37     В чём разница между заголовками <c***> и <***.h>? #10
Цитата Сообщение от alex_x_x Посмотреть сообщение
что хедер может не быть файлом
Чего-чего?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 13:45  [ТС]     В чём разница между заголовками <c***> и <***.h>? #11
Цитата Сообщение от Deviaphan Посмотреть сообщение
Чего-чего?
Как я понял, человек имеет ввиду что в случаи ***.h акцент делается на том, что это именно файл С, а в случаи с*** это хедер уже языка С++ (без использования слова файл)
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 13:48     В чём разница между заголовками <c***> и <***.h>? #12
Цитата Сообщение от xtorne21st Посмотреть сообщение
Как я понял, человек имеет ввиду что в случаи ***.h акцент делается на том, что это именно файл С, а в случаи с*** это хедер уже языка С++ (без использования слова файл)
Да.

я так тебе скажу что не нужно тебе маятся этим, потому что ты будешь использовать у себя в программах и <c***> и <***.h>?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:51     В чём разница между заголовками <c***> и <***.h>? #13
Цитата Сообщение от xtorne21st Посмотреть сообщение
без использования слова файл
Поясню. Любой хэдэр является файлом, но не всякий файл является хэдэром. Расширение файла это просто несколько букв после точки, которые ничего не значат.
Kastaneda
16.10.2012, 14:04
  #14

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Расширение файла это просто несколько букв после точки, которые ничего не значат
скажи это DOS'у!

alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
16.10.2012, 14:05     В чём разница между заголовками <c***> и <***.h>? #15
Цитата Сообщение от Deviaphan Посмотреть сообщение
Поясню. Любой хэдэр является файлом, но не всякий файл является хэдэром. Расширение файла это просто несколько букв после точки, которые ничего не значат.
nope
по стандарту системный хедер может не быть файлом - именно так
его включение может приводить к какой-то реакции компилятора, избегаю включения текста какого-либо файла
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 14:11     В чём разница между заголовками <c***> и <***.h>? #16
Цитата Сообщение от alex_x_x Посмотреть сообщение
по стандарту системный хедер может не быть файлом - именно так

Приведи пример такого хэдэра, пжалста.


Цитата Сообщение от Kastaneda Посмотреть сообщение
скажи это DOS'у
Это действительно и для ДОСа. Просто с расширением было проще определять тип, не парся заголовок файла.)
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 14:16  [ТС]     В чём разница между заголовками <c***> и <***.h>? #17
Цитата Сообщение от alex_x_x Посмотреть сообщение
nope
по стандарту системный хедер может не быть файлом - именно так
его включение может приводить к какой-то реакции компилятора, избегаю включения текста какого-либо файла
Я думал, что к какой то реакции компилятора или препроцессора приводит директивы препроцессора, а включение заголовка расширяет область видимости. Что-то я совсем запутался...
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,139
Записей в блоге: 26
16.10.2012, 14:22     В чём разница между заголовками <c***> и <***.h>? #18
Цитата Сообщение от xtorne21st Посмотреть сообщение
а включение заголовка расширяет область видимости
Для чего нужен define?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 14:57  [ТС]     В чём разница между заголовками <c***> и <***.h>? #19
Чтобы окончательно разобраться по этой теме нужно (на мой взгляд) хорошо понимать как устроена реализация программы. Лично для меня до сих пор не понятно в чём разница между компоновщиком и препроцессором? Ведь по сути они выполняют одно и тоже?
Допустим если код:
C++
1
2
3
4
5
6
#include <iostream>
 
int main()
{
std::cout << "Hello World";
}
Можете, если вас не затруднит, поэтапно изложить процесс реализации этой программы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 15:32     В чём разница между заголовками <c***> и <***.h>?
Еще ссылки по теме:

Не объясните в чём разница между случаями C++
C++ В чём разница?
Односвязный список: В чём разница между struct и class? C++

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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
16.10.2012, 15:32     В чём разница между заголовками <c***> и <***.h>? #20
Цитата Сообщение от Deviaphan Посмотреть сообщение
Приведи пример такого хэдэра, пжалста.
пример не приведу, но вот цитата из стандарта - прям щас открыл

17.4.1.2 Headers
1 The elements of the C++ Standard Library are declared or defined (as appropriate) in a header (158)
(158) A header is not necessarily a source file, nor are the sequences delimited by < and > in header names necessarily valid source file names (16.2).
воот помню перетирали Вопросы по теории
Yandex
Объявления
16.10.2012, 15:32     В чём разница между заголовками <c***> и <***.h>?
Ответ Создать тему
Опции темы

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