Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение библиотек, Функции работают и без них! 
V
    Опции темы
Hagrael
Дата 4.7.2011, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



Функции работают и без каких-либо библиотек! Функция strcpy работает без string.h, тип string есть и без библиотеки string! Может, компилятор их автоматически подключает? Но тогда как мне их отключить? Среда: Code::Blocks.

Это сообщение отредактировал(а) Hagrael - 4.7.2011, 06:49
PM MAIL   Вверх
borisbn
Дата 4.7.2011, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Скорее всего у тебя включен какой-нибудь stdafx.h, в котором все эти h-ники проинклюдены. Если в cpp-шнике нет ни одного #include, то компилироваться вызов strcpy не должен


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Hagrael
Дата 4.7.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



Видно, Code::Blocks и правда сам добавляет этот файл. А как мне до него достучаться и убрать все заголовки?
PM MAIL   Вверх
borisbn
Дата 4.7.2011, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



у тебя в cpp-шнике есть #include "stdafx.h" ? Если есть, то просто удали эту строку


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Hagrael
Дата 4.7.2011, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



borisbn, в том-то и дело, что нет.
PM MAIL   Вверх
bsa
Дата 4.7.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Hagrael, тогда выложи минимально компилируемый пример и команду компиляции, которой собирает Code::Blocks.
PM   Вверх
Hagrael
Дата 5.7.2011, 06:57 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



Вот пример:
Код

int main() {
    return 0;
}

А вот, что было в Build log:
Код


-------------- Build: Debug in Use your files as you want! ---------------

Compiling: main.cpp
Linking console executable: bin\Debug\Use your files as you want!.exe
Output size is 25.24 KB
Process terminated with status 0 (0 minutes, 2 seconds)
0 errors, 0 warnings

"Use your files as you want!" - название проекта.
PM MAIL   Вверх
borisbn
Дата 5.7.2011, 08:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(Hagrael @  5.7.2011,  06:57 Найти цитируемый пост)
Вот пример:

ихде strcpy и string ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Hagrael
Дата 5.7.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



borisbn, что с ними, что без, результат такой же.
PM MAIL   Вверх
borisbn
Дата 5.7.2011, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Hagrael, ты хочешь сказать, что в точности такой main.cpp
Код

int main()
{
    char c_str[ 42 ] = "Hello";
    char c_str_2[ 42 ];
    strcpy( c_str_2, c_str );
    std::string str = c_str_2;
    return 0;
}

компилируется без ошибок ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Hagrael
Дата 5.7.2011, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



Вот лог до подключения библиотеки <iostream>:
Код

\Code Blocks\Checks\main.cpp||In function `int main()':
\Code Blocks\Checks\main.cpp|5|error: `strcpy' was not declared in this scope
\Code Blocks\Checks\main.cpp|6|error: `string' is not a member of `std'
\Code Blocks\Checks\main.cpp|6|error: expected `;' before "str"
\Code Blocks\Checks\main.cpp|5|warning: unused variable 'strcpy'
=== Build finished: 3 errors, 1 warnings ===

А вот после:
Код

-------------- Build: Debug in Checks ---------------

Compiling: main.cpp
Linking console executable: bin\Debug\Checks.exe
Output size is 626.18 KB
Process terminated with status 0 (0 minutes, 2 seconds)
0 errors, 0 warnings

Не уже ли strcpy объявляется в библиотеке <iostream>?
PM MAIL   Вверх
boostcoder
Дата 5.7.2011, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



компилятор и версию сообщи.

Добавлено через 7 минут и 49 секунд
наверное mingw. но версию хоть сообщи.
PM WWW   Вверх
borisbn
Дата 5.7.2011, 14:54 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(Hagrael @  5.7.2011,  14:04 Найти цитируемый пост)
Вот лог до подключения библиотеки <iostream>:

<iostream> - это не библиотека, а заголовочный файл. Директива #include делает практически дословно следующее: открывает указанный ей файл (в нашем случае iostream без расширения), выделяет всё (Ctrl+A), копирует (Ctrl+C) и вставляет в твой файл main.cpp вместо себя (Ctrl+V). Можешь сделать то же самое вручную - рез-т будет точно таким же.

Теперь по вопросу: в заголовочном файле iostream (или в файлах, которые он include'ит) используются функции из stdlib.h (например strcpy) и строки (string). Для корректной компиляции iostream он включает в себя нужные ему h-ники. Открой этот файл и убедись сам.

Вообще-то это правило дурного тона - рассчитывать на то, что какой-то там h-ник включит требуемые тебе h-ники, поэтому принято самому включать те h-ники, которые тебе требуются (кстати, iostream так и сделал)


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Hagrael
Дата 5.7.2011, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 26.6.2011

Репутация: нет
Всего: нет



Большое спасибо! Вопрос решен!
PM MAIL   Вверх
bsa
Дата 5.7.2011, 15:53 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
Hagrael, ну так пометь тему решенной

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.