powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / где все же описываются функции из .h-ек
25 сообщений из 68, страница 1 из 3
где все же описываются функции из .h-ек
    #39994002
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не понимаю. и нарыть в это интернете не получается и в книге не описано. вот допустим есть библиотека math.h , я её инклужу и никаких файлов не линкую с моим проектом. и этого достаточно: я могу использовать всякие там синусы , логарифмы , возведение в степень.
вопрос: где описываются эти всякие функции синусы , косинусы. Ведь провалившись в math.h реализаций этих функций мы не увидим. Оно и понятно ведь это заголовочный файл, но тогда где описаны эти функции ? Если эти функции описаны в стандартной библиотеке тогда зачем мне инклудить тогда math.h ????
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994011
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опции линкера подключают библиотеки. В том числе и math. И в каждом компилляторе их названия могут отличаться.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994012
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Разработчики компилятора написали math.c, откомпилировали его в виде библиотеки.
Эта библиотека по умолчанию подключена к вашему проекту. Там эти функции.

Вам отдали math.h. И откомпилированный файл библиотеки.

Полная аналогия с тем что делаете вы.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994014
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Его любознательнось хочет узнать, в какой *.so/dll лежит реализация квадратного корня.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994015
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для gcc - это будет опция -lm, и дальше можно поискать что фактически слинковалось в бинарник

Код: plaintext
1.
$ gcc ..... -lm
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994017
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для линукс файл лежит предположительно тут. (Strace показывает)

Код: plaintext
1.
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994018
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"man ldd"?
Или слишком примитивно?
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994019
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вариант
- скомпилить два бинарника. С либой и без.
- потом изучать
ldd имя-бинарника
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994021
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно самому функцию синуса написать.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994026
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Можно самому функцию синуса написать.


дело не в синусе и не в math.h
просто если речь коснется написания своей библиотеке подобно math.h
да даже и такой задачи тоже пока нет. просто хотелось бы понять. как устроены заголовочные файлы.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заголовочные файлы - это пережиток глубокого прошлого кибернетики. Изучая его - ты будешь изучать
историю ЭВМ и первых компилляторов. Тебе оно надо? Просто пользуйся и все.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994030
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
andron81,

Разработчики компилятора написали math.c, откомпилировали его в виде библиотеки.
Эта библиотека по умолчанию подключена к вашему проекту. Там эти функции.

Вам отдали math.h. И откомпилированный файл библиотеки.

Полная аналогия с тем что делаете вы.


мне пока хотя бы представление иметь как это делается.
просто выясняется , что помимо какого - нибудь заголовочного файла myheader.h ещё имеется приложение в виде myheader.c
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994033
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Заголовочные файлы - это пережиток глубокого прошлого кибернетики.
"Primary source", вроде, только в IBM Visual Age for C/C++ v4.0 были (середина девяностых). Как-то не взлетело. Так какой-же оно пережиток?
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994038
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

я попытаюсь объяснить зачем мне это . я зануда прорабатываю упражнения K&R и исходники тоже по макс. досконально разбираю.
Они там переписывают как бы stdin.h
Подрузамевается , что нижеуказанный фрагмент это кусок типичного заголовочного файла например stdin.h

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
#define NULL О
#define EOF (-1)
#define BUFSIZ 1024
#define OPEN_MAX 20 /* max число одновременно открытых файлов */
typedef struct _iobuf {
 int cnt; /* количество оставшихся символов */
 char *ptr; /* позиция следующего символа */
 char *base; /* адрес буфера */
 int flag; /* режим доступа */
 int fd; /* дескриптор файла */
} FILE;
extern FILE _iob[OPEN_MAX];
#define stdin (&iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])
enum _flags {
 _READ =01, /* файл открыт на чтение */
 _WRITE = 02, /* файл открыт на запись */
 _UNBUF = 04, /* файл не буферизуется */
 _EOF = 010, /* в данном файле встретился EOF */
 _ERR = 020 /* в данном файле встретилась ошибка */
};
int _fillbuf(FILE *);
int _flushbuf(int, FILE *);
#define feof(p) (((p)->flag & _EOF) != 0)
#define ferror(p) (((p)->flag & _ERR) != 0)
#define fileno(p) ((p)->fd)
#define getc(p) (--(p)->cnt >= 0 ? (unsigned char) *(p)->ptr++ : _fillbuf(p))
#define putc(x.p) (--(p)->cnt >= 0 ? *(p)->ptr++ = (x) : _flushbuf((x),p))
#define getchar() getc(stdin)
#define putchar(x) putc((x), stdout)



а потом реализуется fopen и _fillbuf. Их исходники не привожу, но они есть в книге .
и далее на этой основе требуется переработать fopen и _fillbuf.

Вот и как я должен перерабатывать. я выпутался так , что я подключаю этот вышеуказанный заголовок, а fopen и _fillbuf реализую в файле add.c и подликовываю с основным файлом (там где у меня функция main).
Но я думал, что все проще , а не проще.
это всё устарело, да, но упражнения ведь я хочу выполнить...
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994041
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для современного компиллятора нет никакой мотивации создавать 2 артифакта. Хедер и реализацию.
Мета-описательные возможности - безграничны. И размерами мы слава богу не ограничены (не 64 килобайта
у нас на десктопах слава богу).

Поэтому я и утверждаю в топике что хедеры - это пережиток старины.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994042
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81

я попытаюсь объяснить зачем мне это . я зануда прорабатываю упражнения K&R и исходники тоже по макс. досконально разбираю.
Они там переписывают как бы stdin.h

Может не надо этого делать? Какого года эти "упражнения"?
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994044
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

немножко осталось ))) штук 5 от силы . последняя глава :)
80 какого-то года эти упражнения )))))))))))
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994046
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

>имеется приложение в виде myheader.c
= это не приложение.
Прежде чем код писать, разберись о чем мы?
Бинарник + либы.so?
Или о чем ты?
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994048
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ну, хедеры или подключение либы не суть ведь.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994049
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
andron81,

>имеется приложение в виде myheader.c
= это не приложение.
Прежде чем код писать, разберись о чем мы?
Бинарник + либы.so?
Или о чем ты?



22189769
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994050
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
mayton,

немножко осталось ))) штук 5 от силы . последняя глава :)
80 какого-то года эти упражнения )))))))))))

Вот ты чудак. Подозреваю что дедушки Денис и Брайан писали даже не про С++ а про С.
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994051
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
andron81
mayton,

немножко осталось ))) штук 5 от силы . последняя глава :)
80 какого-то года эти упражнения )))))))))))

Вот ты чудак. Подозреваю что дедушки Денис и Брайан писали даже не про С++ а про С.


разумеется под Си. но чуть чуть ведь осталось )
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994052
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
> это всё устарело, да, но упражнения ведь я хочу выполнить...
== тогда сам, в одиночку. Немного желающих в старине копаться. Один, полтора землекопа).
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994053
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Ну, хедеры или подключение либы не суть ведь.

Вот мы добрались до самого главного. До гвоздя программы. Или до десертного блюда.

Кто и где гарантирует что хедер соответствует либе? Тоесть где в этой системе координат
будет декларировано что ЭТОТ хедер именно от этой либы?
...
Рейтинг: 0 / 0
где все же описываются функции из .h-ек
    #39994054
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
PetroNotC Sharp
andron81,

>имеется приложение в виде myheader.c
= это не приложение.
Прежде чем код писать, разберись о чем мы?
Бинарник + либы.so?
Или о чем ты?



22189769

22189785
...
Рейтинг: 0 / 0
25 сообщений из 68, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / где все же описываются функции из .h-ек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]