Программа не компилируется что это значит

Не компилируется простейший исходный текст на C++

Не компилируется — это означает, что компилятор выдает какое-то сообщение об ошибке, не так ли? Что это за сообщение?

15 янв 2017 в 13:46
какая ошибка при компиляции?
15 янв 2017 в 13:46

1.cpp: In function ‘int main(int, char**)’: 1.cpp:7:11: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] char *p = «po»; ^

15 янв 2017 в 13:48
15 янв 2017 в 13:49
Спасибо. Но даже на сайте на другом все компилируется.. во всем виноват GCC 9.4.2 ??
15 янв 2017 в 13:55

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Но что значит «не компилируется»? Просто молча не компилируется и все тут? Черный экран? Проверьте, включен ли компьютер в электрическую сеть.

А если он что-то сообщает — то, может, поделитесь? очень трудно расходовать телепатические возможности в воскресенье.

Update Вас просто предупредили, что в присвоении

char *p = «po»;

p имеет тип char , а «po» — const char[] , так что вы можете непреднамеренно попытаться изменить константный литерал. Что делать категорически не рекомендуется — можно получить неприятности.

Code::Bloks. «*** — Debug» uses an invalid compiler. Ошибка — Не компилируется программа

В вашем случае проще всего написать

const char *p = «po»;
Отслеживать
ответ дан 15 янв 2017 в 13:48
206k 14 14 золотых знаков 113 113 серебряных знаков 221 221 бронзовый знак

1.cpp: In function ‘int main(int, char**)’: 1.cpp:7:11: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] char *p = «po»; ^

15 янв 2017 в 13:49

Если не учитывать специфику проектов для тех или иных компиляторов, то я вижу единственную причину, что код не компилируется компилятором C++: в С++ строковые литералы имеют тип константных символьных массивов. Поэтому следует написать

const char *p = «po»;

Этот код может компилироваться другими компиляторами для обеспечения совместимости со старым кодом. Кроме того строковые литералы в C в отличии от C++ сохраняют эту совместимость со старым кодом, так как квалификатор const был не сразу введен в язык C. Поэтому в C строковые литералы имеют тип неконстантных символьных массивов. Для C программы данное объявление совершенно корректно

char *p = «po»;

Тем не менее ни в C++, ни в C строковые литералы нельзя изменять даже несмотря на что в последнем случае они имеют тип неконстантных символьных массивов. Поэтому, например, если в программе на C (не говоря уж о программе на C++) вы напишите

char *p = «po»; p[0] = ‘q’;

то программа будет иметь неопределенное поведение.

Источник: ru.stackoverflow.com

Как работает язык программирования(Компилятор)? Основы программирования.

Что такое компиляция в программировании?

Одной из ключевых характеристик PHP является то, что это интерпретируемый язык программирования. С другой стороны, языки программирования наподобие C , изначально разрабатывались для компиляции. Что это значит?

Компилируется ли язык программирования или интерпретируется, на самом деле это не зависит от природы языка программирования. Любой язык программирования может интерпретироваться так называемым интерпретатором или компилироваться с помощью так называемого компилятора.

Рабочий цикл программы

При использовании любого языка программирования существует определенный рабочий цикл создания кода. Вы пишете его, запускаете, находите ошибки и отлаживаете. Таким образом, вы переписываете и дописываете программу, проверяете ее. То, о чем пойдет речь в этой статье, это » запускаемая » часть программы.

Когда пишете программу, вы хотите, чтобы ее инструкции работали на компьютере. Компьютер обрабатывает информацию с помощью процессора, который поэтапно выполняет инструкции, закодированные в двоичном формате. Как из выражения « a = 3; » получить закодированные инструкции, которые процессор может понять?

Мы делаем это с помощью компиляции. Существует специальные приложения, известные как компиляторы. Они принимают программу, которую вы написали. Затем анализируют и разбирают каждую часть программы и строят машинный код для процессора. Часто его также называют объектным кодом.

На одном из этапов процесса обработки задействуется компоновщик, принимающий части программы, которые отдельно были преобразованы в объектный код, и связывает их в один исполняемый файл. Вот схема, описывающая данный процесс:

Рабочий цикл программы

Конечным элементом этого процесса является исполняемый файл. Когда вы запускаете или сообщаете компьютеру, что это исполняемый файл, он берет первую же инструкцию из него, не фильтрует, не преобразует, а сразу запускает программу и выполняет ее без какого-либо дополнительного преобразования. Это ключевая характеристика процесса компиляции — его результат должен быть исполняемым файлом, не требующим дополнительного перевода, чтобы процессор мог начать выполнять первую инструкцию и все следующие за ней.

Первые компиляторы были написаны непосредственно через машинный код или с использованием ассемблеров. Но цель компилятора очевидна: перевести программу в исполняемый машинный код для конкретного процессора.

Некоторые языки программирования разрабатывались с учетом компиляции. C , например, предназначался для того, чтобы дать возможность программистам с легкостью реализовать разные вещи. Но в итоге он разрабатывался таким образом, чтобы его можно было легко перевести на машинный код. Компиляция в программировании это серьезно!

Не все языки программирования учитывают это в своей концепции. Например, Java предназначался для запуска в « интерпретирующей » среде, а Python всегда должен интерпретироваться.

Интерпретация программы

Альтернативой компиляции является интерпретация. Чем отличаются компиляторы и интерпретаторы? Основная разница между компилятором и интерпретатором заключается в том, как они работают. Компилятор берет всю программу и преобразует ее в машинный код, который понимает процессор.

Интерпретатор — это исполняемый файл, который поэтапно читает программу, а затем обрабатывает, сразу выполняя ее инструкции.

Другими словами, программа-интерпретатор выполняет программу поэтапно как часть собственного исполняемого файла. Объектный код не передается процессору, интерпретатор сам является объектным кодом, построенным таким образом, чтобы его можно было вызвать в определенное время.

Это ломает рабочий цикл, который был приведен на диаграмме выше. Теперь у нас есть новая диаграмма:

Интерпретация программы

На ней мы видим, что в отличии от компилятора, интерпретатор всегда должен быть под рукой, чтобы мы могли вызвать его и запустить нашу программу. В некотором смысле интерпретатор становится процессором. Программы, написанные для интерпретации, называются « скриптами », потому что они являются сценариями действий для другой программы, а не прямым машинным кодом.

Читайте также:
Программа sai что это такое

Например, так работают такие языки программирования, как Python . Вы пишете программу. Затем вводите код в интерпретатор Python , и он выполняет все описанные вами шаги. В командной строке вы можете ввести примерно следующее:

C:>python myprogram.py

В этой команде Python — это исполняемый файл. Вы вводите в него все, что находится в файле myprogram.py, и он выполняет эти инструкции. Компьютер не запустит myprogram.py без Python . Это не машинный код, который понимает процессор. Можно скомпилировать программы Python в объектный или машинный код и запустить его непосредственно в процессоре. Но эта процедура включает в себя компиляцию кода и добавление в качестве ее части всего интерпретатора Python .

Природа интерпретатора

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

Некоторые интерпретаторы выполняют собственную компиляцию, но обычно преобразуют программу байтовый код, который имеет смысл только для интерпретатора. Это своего рода псевдо машинный язык, который понимает только интерпретатор.

Такой код быстрее обрабатывается, и его проще написать для исполнителя ( части интерпретатора, которая исполняет ), который считывает байтовый код, а не код источника.

Есть интерпретаторы, для которых этот вид байтового кода имеет более важное значение. Например, язык программирования Java « запускается » на так называемой виртуальной машине. Она является исполняемым кодом или частью программы, которая считывает конкретный байтовый код и эмулирует работу процессора. Обрабатывая байтовый код так, как если бы процессор компьютера был виртуальным процессором.

У меня есть эмулятор для игровой приставки NIntendo . Когда я загружаю ROM-файл Dragon Warrior , он форматируется в машинный код, который понимает только процессор NES . Но если я создаю виртуальный процессор, который интерпретирует байтовый код во время работы на другом процессоре, я могу запустить Dragon Warrior на любой машине с эмулятором.

Это использует концепция компиляции Java , а также все интерпретаторы. На любом процессоре, для которого я могу создать интерпретатор / эмулятор, можно запускать мои интерпретируемые программы / байтовый код. В этом заключается основное преимущество интерпретатора над компилятором.

За и против

Основным аргументом за использование процесса компиляции является скорость. Возможность компилировать любой программный код в машинный, который может понять процессор ПК, исключает использование промежуточного кода. Можно запускать программы без дополнительных шагов, тем самым увеличивая скорость обработки кода.

Но наибольшим недостатком компиляции является специфичность. Когда компилируете программу для работы на конкретном процессоре, вы создаете объектный код, который будет работать только на этом процессоре. Если хотите, чтобы программа запускалась на другой машине, вам придется перекомпилировать программу под этот процессор. А перекомпиляция может быть довольно сложной, если процессор имеет ограничения или особенности, не присущие первому. А также может вызывать ошибки компиляции.

Основное преимущество интерпретации — гибкость. Можно не только запускать интерпретируемую программу на любом процессоре или платформе, для которых интерпретатор был скомпилирован. Написанный интерпретатор может предложить дополнительную гибкость. В определенном смысле интерпретаторы проще понять и написать, чем компиляторы.

С помощью интерпретатора проще добавить дополнительные функции, реализовать такие элементы, как сборщики мусора, а не расширять язык.

Другим преимуществом интерпретаторов является то, что их проще переписать или перекомпилировать для новых платформ.

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

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

Это проблема для конкретных real-time приложений, таких как игры с высоким разрешением и симуляцией. Некоторые интерпретаторы содержат компоненты, которые называются just-in-time компиляторами ( JIT ). Они компилируют программу непосредственно перед ее исполнением. Это специальные программы, вынесенные за рамки интерпретатора. Но поскольку процессоры становятся все более мощными, данная проблема становится менее актуальной.

Заключение

Всегда июмейте всегда в виду, что некоторые языки программирования специально предназначены для компиляции кода, например, C . В то время как другие языки всегда должны интерпретироваться, например Java .

Для меня не имеет значения, скомпилировано что-то или интерпретировано, если оно может выполнить задачу эффективно.

Некоторые системы не предлагают технические условия для эффективного использования интерпретаторов. Поэтому вы должны запрограммировать их с помощью чего-то, что может быть непосредственно скомпилировано, например C . Иногда нужно выполнить вычисления настолько интенсивно, насколько это возможно. Например, при точном распознавании голоса роботом. В других случаях скорость или вычислительная мощность могут быть не столь критичными, и написать эмулятор на оригинальном языке может быть проще.

Сообщите мне, что бы вы предпочли: интерпретацию или компиляцию? Спасибо за уделенное время!

Источник: www.internet-technologies.ru

0.8 – Несколько распространенных проблем C++

В этом разделе мы рассмотрим некоторые из распространенных проблем, с которыми, похоже, начинающие программисты сталкиваются с довольно высокой вероятностью. Это не исчерпывающий список проблем компиляции или запуска программ, а скорее прагматичный список решений самых основных проблем. Если у вас есть предложения по другим вопросам, которые могут быть добавлены в этот список, опубликуйте их в разделе комментариев ниже.

Общие проблемы во время выполнения

Вопрос: При выполнении программы окно консоли мигает, а затем сразу закрывается.

Сначала добавьте или убедитесь, что следующие строки находятся в верхней части вашей программы (пользователи Visual Studio должны убедиться, что эти строки появляются после #include «pch.h» или #include «stdafx.h» , если таковые существуют):

#include #include

Во-вторых, добавьте следующий код в конец функции main() (прямо перед оператором return ):

// сбрасываем все флаги ошибок std::cin.clear(); // игнорируем любые символы во входном буфере, пока не найдем новую строку std::cin.ignore(std::numeric_limits::max(), ‘n’); // получаем от пользователя еще один символ std::cin.get();

Читайте также:
Pds что за программа

Это заставит вашу программу ждать, пока пользователь нажмет любую клавишу, прежде чем продолжить, что даст вам время изучить вывод вашей программы, прежде чем ваша операционная система закроет окно консоли.

Другие решения, такие как обычно предлагаемое system(«pause») , могут работать только в определенных операционных системах, и их следует избегать.

Более старые версии Visual Studio могут не приостанавливаться, когда программа запускается в режиме Начать с отладкой (Start With Debugging) ( F5 ). Попробуйте запустить в режиме Начать без отладки (Start Without Debugging) ( Ctrl + F5 ).

Вопрос: Я запустил свою программу, получил окно, но ничего не выводится.

Выполнение может блокировать ваш антивирус. Попробуйте временно отключить его и посмотрите, не в этом ли проблема.

Вопрос: Моя программа компилируется, но работает некорректно. Что не так?

Отладьте ее! Советы по диагностике и отладке программ приведены далее в главе 3.

Общие проблемы времени компиляции

Это означает, что ваш компилятор не может найти вашу функцию main() . А все программы должны включать в себя эту функцию.

Есть несколько вещей, которые нужно проверить:

  1. Содержит ли ваш код функцию с именем main ?
  2. Правильно ли написано имя main ?
  3. Когда вы компилируете свою программу, видите ли вы, что файл, содержащий функцию main() , компилируется? Если нет, либо переместите функцию main() в другой файл, либо добавьте этот файл в свой проект (для получения дополнительной информации о том, как это сделать, смотрите урок «2.7 – Программы с несколькими файлами кода»).
  4. Вы точно создали консольный проект? Попробуйте создать новый консольный проект.

Вопрос: Я пытаюсь использовать функциональность C++11/14/17/XX, но она не работает.

Если у вас старый компилятор, он может не поддерживать эти более свежие дополнения к языку. В этом случае обновите свой компилятор.

В случае с современными IDE/компиляторами ваш компилятор может по умолчанию использовать более старый стандарт языка. Мы рассмотрим, как изменить стандарт языка в уроке «0.12 – Настройка компилятора: выбор стандарта языка».

Вопрос: При попытке использовать cin , cout или endl компилятор говорит, что cin , cout или endl являются «необъявленными идентификаторами».

Во-первых, убедитесь, что вы включили следующую строку в верхней части файла:

#include

Во-вторых, убедитесь, что каждое использование cin , cout и end l имеет префикс » std:: «. Например:

std::cout

Если это не решит вашу проблему, возможно, ваш компилятор устарел или установка повреждена. Попробуйте переустановить и/или обновить компилятор до последней версии.

Вопрос: При попытке использовать endl для завершения напечатанной строки компилятор говорит, что end1 является «необъявленным идентификатором».

Убедитесь, что вы не перепутали букву l (нижний регистр L) в endl с цифрой 1. endl – это все буквы. Убедитесь, что ваш редактор использует шрифт, который проясняет разницу между строчной буквой L, заглавной i и цифрой 1. Кроме того, во многих шрифтах, не предназначенных для программирования, можно легко перепутать заглавную букву o и цифру ноль.

Проблемы с Visual Studio

Вопрос: При компиляции с помощью Microsoft Visual C++ вы получаете фатальную ошибку C1010 с сообщением типа » c:vcprojectstest.cpp(263) :fatal error C1010: unexpected end of file while looking for precompiled header directive » (неожиданный конец файла при поиске директивы предварительно скомпилированного заголовка).

Эта ошибка возникает, когда компилятор Microsoft Visual C++ настроен на использование предварительно скомпилированных заголовков, но один (или несколько) ваших файлов кода C++ не включает #include «stdafx.h» или #include «pch.h» в качестве первой строки кода файла.

Предлагаемое нами решение – отключить предварительно скомпилированные заголовки, как это сделано в уроке «0.7 – Компиляция вашей первой программы».

Если вы хотите, чтобы предварительно скомпилированные заголовки были включены, чтобы решить эту проблему, просто найдите файл(ы), вызывающий ошибку (в приведенной выше ошибке виновником является test.cpp ), и добавьте следующую строку в самом верху файла):

#include «pch.h»

В более старых версиях Visual Studio используется stdafx.h вместо pch.h , поэтому, если pch.h не решает проблему, попробуйте stdafx.h .

Обратите внимание, что для программ с несколькими файлами каждый файл кода C++ должен начинаться с этой строки.

Кроме того, вы можете отключить предварительно скомпилированные заголовки.

Скорее всего, вы создали не консольное приложение, а графическое приложение Windows. Создайте заново свой проект и убедитесь, что вы создали его как консольный проект Windows (или Win32).

Вопрос: Когда я компилирую свою программу, я получаю предупреждение » Cannot find or open the PDB file » (не могу найти или открыть файл PDB).

Это предупреждение, а не ошибка, поэтому оно не должно повлиять на вашу программу. Однако она раздражает. Чтобы исправить это, перейдите в меню Debug (Отладка) → Options and Settings (Параметры) → Symbols (Символы) и установите флажок Microsoft Symbol Server (Сервер символов Microsoft).

Прочее

Вопрос: У меня есть еще одна проблема, которую я не могу понять. Как я могу быстро получить ответ?

По мере обучения у вас, несомненно, будут возникать вопросы или неожиданные проблемы. Что делать дальше, зависит от вашей проблемы. Но в целом есть несколько вещей, которые вы можете попробовать.

Сначала спросите Google. Найдите хороший способ сформулировать свой вопрос и выполните поиск в Google. Если вы получили сообщение об ошибке, вставьте точное сообщение в Google, используя кавычки. Скорее всего, кто-то уже задавал тот же вопрос, и вы найдете ответ.

Если это не поможет, спросите на сайте вопросов и ответов. Существуют веб-сайты, предназначенные для вопросов и ответов о программировании, например, Stack Overflow. Попробуйте разместить там свой вопрос. Не забудьте подробно описать, в чем заключается ваша проблема, и включить всю необходимую информацию, например, какую ОС и какую IDE вы используете.

Источник: radioprog.ru

Первая программа. Код не компилируется и не запускается программа.

Решил учить С++. Скачал книгу Programming: Principles and Practice Using C++, Бьерн Страуструп. И на первой же программе «Hello, World!» возникла проблема. Код не компилируется и не запускается программа.

Я так понял вся проблема в директиве подключаемого файла (1 строка).

1 2 3 4 5 6
#include «std_lib_facilities.h» int main() { cout «Hello, World! n» ; return 0; }
Код писал в visual c++, создал новый файл «Win32 Console Application».
Подскажите в чем моя ошибка?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Читайте также:
Программа егисз что это

Не компилируется первая программа
Подскажите пожалуйста в чём проблема. Попробовал и ` и » и < выход тот же самый. Как будто сам.

Программа компилируется, но не запускается
Программа компилируется, говорит мне, что Построение успешно завершено, и всё. Больше ничего.

Программа компилируется, но не запускается
любая абсолютно программа на C++ если нет ошибок компилируется, но если запустить, треугольник типа.

Программа не компилируется(не запускается)
Помогите решить проблему, проект сдавать завтра (11,05) Делфи 7 версия, раньше запускалась, сейчас.

68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
Я не знаю что это за файл «std_lib_facilities.h». Но я бы вот так сделал

1 2 3 4 5 6 7
#include «iostream» int main() { std::cout «Hello, World! n» ; return 0; }
Регистрация: 28.11.2011
Сообщений: 14
1 2 3 4 5 6 7
#include «iostream» using namespace std; int main() { cout «Hello, World!

n» ; return 0; }
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1

Я вот вам обоим сейчас в папку с исходником засуну пустой iostream, и черта с два у вас что-нибудь скомпилируется.

1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2

std_lib_facilities.h ето наверное файл из книги «Бьерн Страуструп — Программирование. Принципы и практика использования C++». Его можно скачать с сайта етой книги.

Регистрация: 07.11.2008
Сообщений: 34

to g-h Бьерн Страуструп — Программирование. Принципы и практика использования C++». Его можно скачать с сайта етой книги.

Ок. Нашел что-тоhttp://www.stroustrup.com/Prog. cilities.h и что мне с этим делать?
1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740

Записей в блоге: 2
и что мне с этим делать?

Я пользуюсь Visual Studio 2010 и файл соответственно закинул в директорию C:Program FilesMicrosoft Visual Studio 10.0VCinclude

Регистрация: 07.11.2008
Сообщений: 34

Так же наше текст, вот только я в анг. не силен. может это вам поможет разобраться.

68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176

1 2 3 4 5 6 7 8 9 10
#include «stdafx.h» #include «iostream» using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout «Hello, World n»; return 0; }
И не надо никакие файлы скачивать с интернета. Все правильно работает
Регистрация: 07.11.2008
Сообщений: 34

Залил файл в C:Program FilesMicrosoft Visual StudioVC98Include.
Пишет при компиляции: d:22.cpp(7) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.

Добавлено через 2 минуты

1 2 3 4 5 6 7 8 9 10
#include «stdafx.h» #include «iostream» using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout «Hello, World n»; return 0; }
И не надо никакие файлы скачивать с интернета. Все правильно работает

Конечно не надо.

Но у меня стоит задача не вывести «hello world» на экран, а запустить так как написанно в книге, т.к. я по ней буду учится.

68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
fatal error C1010: unexpected end of file while looking for precompiled header directive
У меня кажется такая ошибка была когда с проекта удалил строчку #include «stdafx.h».
2554 / 1319 / 178

Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1

g-h, мало того, что ваш код непереносим, так еще и игнорируете #4

InstInkt, если вы хотите выучить, а не почитать и закинуть, то вам необходимо знать, каким заголовочным файлом что подключается. Использование std_lib_facilities.h в данном случае — ущербно.

Форумчанин

Эксперт CЭксперт С++

8192 / 5042 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453

Я плакалЪ.
Кстати, оказывается VS (не знаю как 2010, я попробовал 2008) настолько ущербен, что если при создании проекта не снять галочку с «Включить предкомпилированный заголовок», то он и вот такой код не скомпилит:

1 2 3 4 5 6
#include int main() { std::cout «Hello world»; return 0; }
68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176
g-h, мало того, что ваш код непереносим, так еще и игнорируете #4

Я не знаю переносим он или нет, но #9 уже написал как полностью программа есть.
Регистрация: 07.11.2008
Сообщений: 34

И какой выход из сложившейся ситуции? «Ущербный» vc98(это дело обновим). Учебник вроде как и не старый, издание 11-го года. «Ущербный» заголовочный подключаемый файл который автор впихнул в первую программу без всяких разъяснений, который будет использоваться и дальше в процессе обучения по книге (в двух последующих главах так точно он присутствует) и какой компилятор использовать.

PS. эту книгу рекомендует этот ресурс в разделе С++ для начинающих/литература

111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653

Залил файл в C:Program FilesMicrosoft Visual StudioVC98Include.
Пишет при компиляции: d:22.cpp(7) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.

если залил в папку с компилятором, то используй
#include
иначе закидывай в папку с проектом.
Регистрация: 07.11.2008
Сообщений: 34
Установил vc10 залил в него заголовочный файл и всеработает. Всем спс за помощь.
Форумчанин

Эксперт CЭксперт С++

8192 / 5042 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453

InstInkt, этот файл содержит ни что иное, как перечень библиотек. Выходит все в кучу, и вы не будете осознавать, какую именно библиотеку надо подключать в конкретных условиях. Обучаться языку по этой книжке можно свободно заменяя #include на перечень библиотек, нужных в данной программе.

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

Эксперт С++

2375 / 1659 / 279
Регистрация: 29.05.2011
Сообщений: 3,387
этот файл содержит ни что иное, как перечень библиотек

Там не только перечень библиотек заголовочных файлов. Там ещё различные функции и классы определяются, так что без этого файла в дальнейшем может оказаться невозможным чтение книги (сам я её не читал).

На другом компьютере вы не напишите даже элементарный Hello world, так как для него нужно подключать библиотеки ввода-вывода, а вы названий то их не знаете.

Узнает. Некоторые детали вначале имеет смысл и пропустить. Возможно Страуструп по такому пути и пошёл.

Источник: www.cyberforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru