powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Где искать код реализованных ранее библиотечных функций ?
13 сообщений из 13, страница 1 из 1
Где искать код реализованных ранее библиотечных функций ?
    #38619979
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Сегодня столкнулся с патчар ( putchar()), решил узнать как она реализована. Сделал поиск на машине библиотеки stdlib, нашёл только header file, два. И всё. Гуглил, не нашёл реализации. Увидел кучу примеров по использованию. Где искать ? Аналогичная ситуация с оператором sizeof, но по нему, как я понял, нет смысла что-то искать, ибо этот оператор реализован в системе команд машины на которой пропускается программа (или реализовано в ОС) ?
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38619984
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А эта функция (патчар) также не входит в состав языка, говорит K&R. Где она реализована ? Сначала я подумал, нужно хорошо изучить ОС, но дело не в этом(Да и K&R говорили что они специально создали машинно-независимый язык). Какой-то слой находится между программой и ОС. Этот слой машинный код, по-видимому. Значит вероятно putchar, sizeof, всё там ? Значит нужно изучать ассемблер? Чтобы стать хорошим программистом
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38619985
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя это очевидно, его нужно изучать. Это как заниматься функциональным анализом, не зная как складывать числа.
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620002
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryЗдравствуйте.
Сегодня столкнулся с патчар ( putchar()), решил узнать как она реализована. Сделал поиск на машине библиотеки stdlib, нашёл только header file, два. И всё. Гуглил, не нашёл реализации. Увидел кучу примеров по использованию. Где искать ? Аналогичная ситуация с оператором sizeof, но по нему, как я понял, нет смысла что-то искать, ибо этот оператор реализован в системе команд машины на которой пропускается программа (или реализовано в ОС) ?
В исходниках никто не обещал все давать. Особенно MS, чьим компилятором ты пользуешься. За исходниками это в опенсорц, там все с исходниками.
Да и не надо по каждой функции лезть в ее исходники, учись читать документацию вот putchar()

sizeof() это не функция, а оператор. При компиляции от заменяется на конкретное значение. Например
Код: plaintext
1.
int size = sizeof(double);


откомпилируется в
Код: plaintext
1.
mov         dword ptr [size],8



SashaMercuryА эта функция (патчар) также не входит в состав языка, говорит K&R. Где она реализована ?
MS никогда жестко не придерживался стандартов, поэтому их компиляторы имеют функции, отсутствующие в стандартах.
SashaMercuryСначала я подумал, нужно хорошо изучить ОС, но дело не в этом(Да и K&R говорили что они специально создали машинно-независимый язык). Какой-то слой находится между программой и ОС. Этот слой машинный код, по-видимому. Значит вероятно putchar, sizeof, всё там ?
Правильно подумал, возможности ОС надо изучать.
ОС и "машинно-независимый" это разные вещи. "машинно-независимый" это гарантия того что код скомпилируется под любой процессор без каких-либо изменений, так оно и есть. "Какой-то слой" - это компилятор, который превращает машинно-независимый код на Си в машинно-зависимый "машинный код" понятный конкретному процессору.

SashaMercuryЗначит нужно изучать ассемблер?
Ассемблер это и есть "машинный код" только в удобном для чтения виде. Изучать его не обязательно. Но хуже не будет если будешь знать как оно реально происходит. Можешь поизучать, только без фанатизма, просто для общего развития.

SashaMercuryЧтобы стать хорошим программистом
Для этого лучше алгоритмы изучать, Кнута почитай .
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620184
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryСегодня столкнулся с патчар ( putchar()),
Был у меня один знакомый, который get/put произносил как джет/пат. Потом перестал, т.к. я каждый раз ржал когда слышал :)
Посмотрите что-ли в словарике :)


Dima TВ исходниках никто не обещал все давать. Особенно MS
По удивительному стечению обстоятельств, именно у MS проще всего посмотреть исходники библиотек.
Потому что MS их поставляет в составе студии (искать папку CRT или типа того), а вот всякие GCC обычно безо всяких исходников установлены, и их надо отдельно устанавливать.
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620245
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эти функции находятся в библиотеке CRT, которая стандартна в смысле проведения и интерфейса, но реализации у каждого компилятора разные (как правило).

С каждым компилятором поставляется своя CRT, с ней же идет как правило опционально её исходный код.

Для GCC надо поставить соответствующий пакет или скачать с сайта.

Для MSVC исходники тоже поставляются, но чтобы они были установлены, надо при установке указать опцию, чтобы это делать. Про умолчанию исходники не ставятся.
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620491
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima_T, спасибо С:

Anatoly Moskovsky Посмотрите что-ли в словарике :)
самое интересное, что я специально посмотрел(до вашего ответа), ещё утром. Но почему-то прочитал u в транскрипции как a. Вот так, хорошо что вы поправили. А то я сегодня решил что всё-время неправильно говорил пут, вместо пат.

MasterZiv, видимо я эту опцию не применял, спасибо

Dima_TДа и не надо по каждой функции лезть в ее исходники, учись читать документацию вот

Да я до сих пор с недоверием использую printf, не знаю её реализацию. А putchar и getchar вообще что-то противозаконное. Не очень приятно использовать что-то, если не известно как это работает
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620541
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДа я до сих пор с недоверием использую printf, не знаю её реализацию
это уже паранойя
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620779
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryсамое интересное, что я специально посмотрел(до вашего ответа), ещё утром. Но почему-то прочитал u в транскрипции как a. Вот так, хорошо что вы поправили. А то я сегодня решил что всё-время неправильно говорил пут, вместо пат.
Во первых, действительно "пут".

А во вторых, ассемблер знать надо. Причем в обоих вариантах - CISC и RISC. Можно ограничиться одним диалектом из одного семейства и одним из другого. Но понимать структуру обоих подходов нужно.
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620825
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА во вторых, ассемблер знать надо. Причем в обоих вариантах - CISC и RISC.
Если так, то дополнительно не помешает узнать что такое собственные и заемные средства, оборотные средства, условно-постоянные и переменные расходы, бухгалтерский баланс и т.д. и т.п.
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620838
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TWhite OwlА во вторых, ассемблер знать надо. Причем в обоих вариантах - CISC и RISC.
Если так, то дополнительно не помешает узнать что такое собственные и заемные средства, оборотные средства, условно-постоянные и переменные расходы, бухгалтерский баланс и т.д. и т.п.Ну если тебе лень заниматься ассемблером, то это твое дело. Никто не заставляет.
Другое дело что ключик компилятора -S тебе будет бесполезен и на любой вопрос об оптимизации кода ты сможешь только развести руками. Да и работа с памятью у тебя останется на уровне шаманства. Но... худо-бедно писать сможешь...
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620859
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНу если тебе лень заниматься ассемблером, то это твое дело. Никто не заставляет.
я им плотно занимался на Z80 в студенчестве, на x86 не довелось. ИМХУ это желательное но необязательное знание.
White OwlДругое дело что ключик компилятора -S тебе будет бесполезен и на любой вопрос об оптимизации кода ты сможешь только развести руками. Да и работа с памятью у тебя останется на уровне шаманства. Но... худо-бедно писать сможешь...
Если честно про ключик -S даже не знаю. Худо-бедно пишу, а знание того что выше перечислил очень помогает делать это очень доходно.
...
Рейтинг: 0 / 0
Где искать код реализованных ранее библиотечных функций ?
    #38620955
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА во вторых, ассемблер знать надо.
не ассемблер, а систему команд
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Где искать код реализованных ранее библиотечных функций ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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