|
|
|
|
|
для: 123php
(27.10.2006 в 23:24)
| | Потому что можно сделать свой заголовочный файл и в нём определить свою функцию с названием, уже существующем в другом заголовочном файле. Компилятор просто-напросто не разберётся какую библиотеку подключать. | |
|
|
|
|
|
|
|
для: 123php
(27.10.2006 в 23:24)
| | Воспринимайте это как традицию языка, которую просто нужно выполнять - это не самая неприятная особенность C++ :))). Обычно, чтобы не включать целую батарею заголовочных файлов их объединяют в один файл. Например, если вы работаете с консольным проектом, то заголовочный файл <iostream> подключит ещё десяток заголовочных файлов. | |
|
|
|
|
|
|
|
для: 123php
(27.10.2006 в 23:24)
| | потому что согласно стандарта языка, ни одно имя функции не является зарезервированным за самим компилятором. Оно Ваше. Захотите - опишете свой объект с таким именем. Захотите - опишете объект из стандартных библиотек. Захотите сделаете это руками, а захотите - включением заголовочного файла. До тех пор, пока Вы этого не сделали, компилятор не имеет права соотносить это имя с чем либо по своему вкусу, пусть даже у него 1000 заголовков под боком. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2006 в 22:22)
| | почему при компиляции сам компилятор не может определить какую библиотеку ему добавить, исходя из функций, которые в коде? | |
|
|
|
|
|
|
|
для: Саня
(27.10.2006 в 21:18)
| | Ну погорячился :))) (компиляторы сейчас действительно умные пошли и вряд ли пропустят такой ляп), пусть используете лишь одну функцию из библиотеки. Просто по сети ходит не мало баек, когда размер программы увеличивался до нескольких мегабайт ради одной функции из библиотеки. В любом случае область достаточно чувствиетльная - вы можете сами решать проблему, а можете подключать для решения проблемы библиотеку, увеличивая объём своей программы. Хотел лишь подчеркнуть, что управлением памятью, в том числе и размером конечного исполняемого модуля полностью (на сколько это возможно) контролируется программистом, отсюда ограничения и сложность языка. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2006 в 00:55)
| | Разве? В. В. Подбельский в своей книге писал, что из заголовочных файлов в конечный код попадают только те функции (прототипы и описания), которые были использованы хотя бы один раз в коде. | |
|
|
|
|
|
|
|
для: 123php
(27.10.2006 в 00:32)
| | PHP - это интерпретатор, а программа на C++ компилируется - какие библиотеки подключите, такие и войдут в состав конечной программы. Т.е. если вы подключите 1 Мб библиотеку, даже не используя из неё функций, размер вашей программы увеличится на 1 Мб, поэтому по умолчанию ничего личшнего не подключается. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2006 в 00:27)
| | имеется, но там это не обязательно, а в с, как я понял, без этого нельзя. | |
|
|
|
|
|
|
|
для: 123php
(26.10.2006 в 23:34)
| | И в PHP это имеется, когда вы подключаете файлы при помощи include(). | |
|
|
|
|
|
|
|
для: cheops
(26.10.2006 в 23:31)
| | первые строчки кода в с
#include | |
|
|
|
|