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

Подключаемы библиотеки - C++

Восстановить пароль Регистрация
 
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
23.03.2011, 11:38     Подключаемы библиотеки #1
Здравствуйте! Есть функция memset - библиотеки string.h
Вопрос. Есть код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    char str[] = "almost every programmer should know memset!";
    memset(str,'-',6);
    cout << str;     
            
    system("PAUSE");
    return EXIT_SUCCESS;
}
я не подключаю библиотеку string.h, однако функция работает. Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2011, 11:38     Подключаемы библиотеки
Посмотрите здесь:

C++ Библиотеки
C++ Библиотеки
Библиотеки C++
Библиотеки С++ C++
C++ Библиотеки (C++)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13954 / 8785 / 1221
Регистрация: 24.12.2010
Сообщений: 15,894
23.03.2011, 12:37     Подключаемы библиотеки #2
Некоторые трансляторы не требуют обязательного описания прототипов функций перед их использованием. Поэтому трансляция исходника проходит благополучно, в объектном модуле появляется ссылка на внешний объект memset. А сборщик (линковщик) в любом случае использует стандартные библиотеки(объектные), в которых этот memset есть, и просто его подсоединяет.
Сборщику вообще глубоко плевать на #include твоего исходника. Это транслятор часто выступает, как строгий дядька. Он боится, а вдруг ты свой memset как нибудь неправильно используешь, не те аргументы передашь, или не то количество. А бывают дядьки и подобрей - больше доверяют ребятишкам, но уж тогда и ошибки времени выполнения - все твои. Кто из дядек более прав - тут есть разные мнения.
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
23.03.2011, 12:44  [ТС]     Подключаемы библиотеки #3
Спасибо. Буду знать. Про сборщики(линковщики), обязательно почитаю и узнаю как это работает.
Байт
 Аватар для Байт
13954 / 8785 / 1221
Регистрация: 24.12.2010
Сообщений: 15,894
23.03.2011, 13:06     Подключаемы библиотеки #4
grrrrr, Имей в виду, что некоторые сборщики не подключают автоматически некоторые библиотеки, которые нам кажутся стандартными. Например gcc из Linux не подключает автоматом математическую библиотеку(sin, pow, log), сколько б #include <math.h> не писать. А надо поставить флажок -lm.
Yandex
Объявления
23.03.2011, 13:06     Подключаемы библиотеки
Ответ Создать тему
Опции темы

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