Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
1

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

16.10.2012, 03:10. Просмотров 1979. Ответов 24
Метки нет (Все метки)

Пробовал несколько несложных примеров применения обоих вариантов. Результат выполнения идентичен. Компилятор никаких предупреждений не выдавал. Так в чём-же собственно разница? Ну не даром ведь переписали для С++ стандартные библиотеки С.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 03:10
Ответы с готовыми решениями:

Не объясните в чём разница между случаями
Привет! Тут вот небольшой вопросик по поводу. Читаю книжку Страуструпа нашего...

В чём разница между процедурами и функциями ?
Мне просто нужно будет выполнить одну и ту же операцию несколько раз, а сама...

В чём разница между string и символьными массивами?
Собсна какая тема, такой и вопрос. Если выразить его по-точнее, то в чём...

Односвязный список: В чём разница между struct и class?
После неудач работы с Vector, а так же отсутствия (Хотя, скорее всего, я просто...

В чём разница между состояниями потока failbit и badbit?
В чём разница между failbit и badbit? Если просто просматривать ошибку ввода в...

24
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
16.10.2012, 04:29 2
фактически ничем
<***> просто делает больший акцент на том, что хедер может не быть файлом (в отличии от *.h, который явно обозначает расширение)
1
alkagolik
Заблокирован
16.10.2012, 04:43 3
alex_x_x, имеется ввиду libc'шные cname vs name.h.
xtorne21st, а открыть почитать никак?
0
nexen
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
16.10.2012, 06:02 4
xtorne21st, разницы в них нет для нас. Однако, .h-файлы сохранились от C, с..-файлы - это C++ хедеры. Поэтому, если пишешь на C++, пиши ctime, иначе time.h.

p.s Мог напутать с тем, что ctime наоборот у C, а .....h у C++, но это не суть важно, ибо основная информация предоставлена. Сам когда-то заинтересовался.
1
Evg
Эксперт CАвтор FAQ
19350 / 7203 / 538
Регистрация: 30.03.2009
Сообщений: 20,142
Записей в блоге: 30
16.10.2012, 11:33 5
Разница в том, что, *.h в будущем скорее всего похерят для Си++, а сейчас они поддерживаются для совместимости
2
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 11:48 6
Цитата Сообщение от nexen Посмотреть сообщение
пиши ctime, иначе time.h.
ctime пишется потому, что C означает СИ, т.е. библиотека досталась в наследство от языка Си
1
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.10.2012, 11:56 7
c* хедеры оборачивают содержимое *.h в std
2
alkagolik
Заблокирован
16.10.2012, 12:04 8
Цитата Сообщение от Jupiter Посмотреть сообщение
c* хедеры оборачивают содержимое *.h в std
bingo!
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 13:28  [ТС] 9
Цитата Сообщение от alkagolik Посмотреть сообщение
xtorne21st, а открыть почитать никак?
Что открыть и где почитать?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:37 10
Цитата Сообщение от alex_x_x Посмотреть сообщение
что хедер может не быть файлом
Чего-чего?
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 13:45  [ТС] 11
Цитата Сообщение от Deviaphan Посмотреть сообщение
Чего-чего?
Как я понял, человек имеет ввиду что в случаи ***.h акцент делается на том, что это именно файл С, а в случаи с*** это хедер уже языка С++ (без использования слова файл)
0
хАЛЕКСЕЙх
9 / 9 / 3
Регистрация: 11.10.2012
Сообщений: 118
16.10.2012, 13:48 12
Цитата Сообщение от xtorne21st Посмотреть сообщение
Как я понял, человек имеет ввиду что в случаи ***.h акцент делается на том, что это именно файл С, а в случаи с*** это хедер уже языка С++ (без использования слова файл)
Да.

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

Не по теме:

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

0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
16.10.2012, 14:05 15
Цитата Сообщение от Deviaphan Посмотреть сообщение
Поясню. Любой хэдэр является файлом, но не всякий файл является хэдэром. Расширение файла это просто несколько букв после точки, которые ничего не значат.
nope
по стандарту системный хедер может не быть файлом - именно так
его включение может приводить к какой-то реакции компилятора, избегаю включения текста какого-либо файла
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 14:11 16
Цитата Сообщение от alex_x_x Посмотреть сообщение
по стандарту системный хедер может не быть файлом - именно так

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


Цитата Сообщение от Kastaneda Посмотреть сообщение
скажи это DOS'у
Это действительно и для ДОСа. Просто с расширением было проще определять тип, не парся заголовок файла.)
0
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 14:16  [ТС] 17
Цитата Сообщение от alex_x_x Посмотреть сообщение
nope
по стандарту системный хедер может не быть файлом - именно так
его включение может приводить к какой-то реакции компилятора, избегаю включения текста какого-либо файла
Я думал, что к какой то реакции компилятора или препроцессора приводит директивы препроцессора, а включение заголовка расширяет область видимости. Что-то я совсем запутался...
0
Evg
Эксперт CАвтор FAQ
19350 / 7203 / 538
Регистрация: 30.03.2009
Сообщений: 20,142
Записей в блоге: 30
16.10.2012, 14:22 18
Цитата Сообщение от xtorne21st Посмотреть сообщение
а включение заголовка расширяет область видимости
Для чего нужен define?
1
xtorne21st
интересующийся
304 / 275 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
16.10.2012, 14:57  [ТС] 19
Чтобы окончательно разобраться по этой теме нужно (на мой взгляд) хорошо понимать как устроена реализация программы. Лично для меня до сих пор не понятно в чём разница между компоновщиком и препроцессором? Ведь по сути они выполняют одно и тоже?
Допустим если код:
C++
1
2
3
4
5
6
#include <iostream>
 
int main()
{
std::cout << "Hello World";
}
Можете, если вас не затруднит, поэтапно изложить процесс реализации этой программы.
0
alex_x_x
бжни
2455 / 1661 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
16.10.2012, 15:32 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).
воот помню перетирали Вопросы по теории
0
16.10.2012, 15:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 15:32

В чём разница между динамической и статической линковкой библиотеки?
В чём разница между динамической и статической линковкой библиотеки? Если...

Различные варианты инициализации указателя - в чём точная разница между ними?
Немного непонятен один момент. Есть некий класс Statement (конструктор...

В чём разница?
Здрасьте. Здесь представлены два способа присвоения переменной A значения 10....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru