Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 3

Чтение кода в библиотеках

28.01.2015, 18:22. Показов 2743. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак, я уже давно учусь программированию. И вот, я хочу перейти на новый для себя этап, но столкнулся с проблемой. Я не понимаю писанины в библиотеках. Даже в самых обычных. Открываешь любую, а там тьма непросветная. Я ни разу не видел такого синтаксиса и наименований. Можете рассказать, что там да как?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2015, 18:22
Ответы с готовыми решениями:

Чтение html кода
Добрые люди, помогите кто чем может. Программа считывает из текстового файла html код и выводит title и заголовки.Но код крашиться когда...

Чтение бинарного кода из файла
Необходимо прочитать бинарный код, синтаксически разделённый на байты (Например: 01000010 00011100 01111011) из файла. С библиотекой...

Некорректное чтение исходного кода
#include<iostream> #include<conio.h> using namespace std; int main() { int a; int b; int c; ...

8
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.01.2015, 18:45
О чём речь? Ты хоть пример покажи.
0
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 3
28.01.2015, 19:35  [ТС]
Например, вот первые строки из conio.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
_Check_return_wat_ _CRTIMP errno_t __cdecl _cgets_s(_Out_z_cap_(_Size)                char * _Buffer, size_t _Size, _Out_ size_t * _SizeRead);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, _cgets_s, _Deref_post_count_(*_Buffer) char, _Buffer, _Out_ size_t *, _SizeRead)
__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_0_CGETS(char *, _CRTIMP, _cgets, _Pre_notnull_ _Post_z_, char, _Buffer)
_Check_return_opt_ _CRTIMP int __cdecl _cprintf(_In_z_ _Printf_format_string_ const char * _Format, ...);
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_s(_In_z_ _Printf_format_string_ const char * _Format, ...);
_Check_return_opt_ _CRTIMP int __cdecl _cputs(_In_z_ const char * _Str);
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cscanf_s) _CRTIMP int __cdecl _cscanf(_In_z_ _Scanf_format_string_ const char * _Format, ...);
_Check_return_opt_ _CRT_INSECURE_DEPRECATE(_cscanf_s_l) _CRTIMP int __cdecl _cscanf_l(_In_z_ _Scanf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
_Check_return_opt_ _CRTIMP int __cdecl _cscanf_s(_In_z_ _Scanf_format_string_ const char * _Format, ...);
_Check_return_opt_ _CRTIMP int __cdecl _cscanf_s_l(_In_z_ _Scanf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
_Check_return_ _CRTIMP int __cdecl _getch(void);
_Check_return_ _CRTIMP int __cdecl _getche(void);
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf(_In_z_ _Printf_format_string_ const char * _Format, va_list _ArgList);
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_s(_In_z_ _Printf_format_string_ const char * _Format, va_list _ArgList);
 
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_p(_In_z_ _Printf_format_string_ const char * _Format, ...);
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p(_In_z_ const char * _Format, va_list _ArgList);
 
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_s_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_s_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_p_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, ...);
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p_l(_In_z_ _Printf_format_string_ const char * _Format, _In_opt_ _locale_t _Locale, va_list _ArgList);
Там написано, что то прототипы. Но я не видел нигде подобного способа объявления прототипа. Можно допустить, что "_Check_return_opt_" - какой-нибудь класс или структура, или заменяется другими объектами. Но это "_CRTIMP", объявленное после проверки_возврата_opt просто убивает всю логику, отлично сложившуюся за всё долгое обучение c++
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
28.01.2015, 20:07
SAL Annotations
3
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
28.01.2015, 20:14
------------------------------------------------------------------------------------------------------------------------------
Все что начинается с символов подчеркивания,
тем паче на территории стандартной библиотеки было зарезервировано под служебные нужды.

------------------------------------------------------------------------------------------------------------------------------
Судя по знакомым записям - это у вас творение от майкрософт.
У них там и стандартную библиотеку, и компилятор разрабатывают грубо говоря одни и те же люди.
Они отлично знают возможности своего компилятора, и используют их на полную катушку.

То, что вы видите не является частью языка с++.
Это - так называемые "расширения" от компилятора:

_CRTIMP
http://blogs.msdn.com/b/ruoldn... /15/c.aspx

__cdecl
https://msdn.microsoft.com/en-... h89ks.aspx

_Check_return_
Return value must not be ignored by callers of this function.
https://msdn.microsoft.com/en-... .100).aspx
2
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 3
28.01.2015, 22:35  [ТС]
Спасибо огромное! Но есть ещё пару вещей, мне не понятных: что это за троеточие в параметрах. Будьте добры, объясните это.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
28.01.2015, 22:47
Цитата Сообщение от SeresHotes Посмотреть сообщение
что это за троеточие в параметрах
Это функции "элипсисы" (ellipses): функции способные принимать переменное количество аргументов.
http://www.itmathrepetitor.ru/... unkciyami/
http://www.cplusplus.com/forum/beginner/74775/


Цитата Сообщение от SeresHotes Посмотреть сообщение
и почему они даже параметры называют с "_"
Такое обозначение имен наглядно дает понять, что данная переменная(макрос/функция/etc) - только для служебных нужд, и не предназначено для пользователей.
0
26 / 26 / 18
Регистрация: 16.01.2014
Сообщений: 161
28.01.2015, 22:48
За что люблю джаву, так это за читабельные стандартные классы)
В Си++ пока не лез в библиотеки. Обычно, если хочу понять, что и как устроенно, пишу с нуля сам) Хороший метод, кстати, попробуйте.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
29.01.2015, 03:46
Цитата Сообщение от The535 Посмотреть сообщение
Обычно, если хочу понять, что и как устроенно, пишу с нуля сам
Все так делают, но при разработке лучше использовать уже готовые, отлаженные и проверенные решения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2015, 03:46
Помогаю со студенческими работами здесь

Чтение исходного кода из файла
Здравствуйте , я не очень опытен в C++ так что извините если данный вопрос покажется вам глупым или даже тупым , я бы хотел спросить , как...

О библиотеках
Здравствуйте, допустим мне нужно писать драйвера, или например написать программу для измерения температуры процессора, а может и спарсить...

Чтение машинного кода exe файла
Я пытаюсь прочитать машинный код своего консольного Win32 приложения, написанного в MS Visual Studio: ifstream exeFile(filename,...

Конфликт имен в библиотеках
Здравствуйте. Возникла проблема при одновременном подключении #include <X11/extensions/xf86vmode.h> и #include...

Ошибки LNK2001 в библиотеках
Добрый день! Подключил библиотеку SFML к проекту, и в результате получил такие ошибки. Причем, используя Visual Studio 2008 ошибки не...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru