Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Hello include


Автор: YahоО 14.5.2021, 19:24
Понятно что новичок, потому как то надо то ли вспоминать, то ли гуглить каждый раз какой include прописать в начале файла чтобы все работало:
Код


#include <iostream>

int main() {
    std::cout << "Hello World!\n";
    system("pause");
    return 0;
}

и если и лишний include в коде имеется то он как бы и не мешает компилятору, 
и собрал я все что мог include-s в один my.cpp, и набралось их более семидесяти штук, вместо того чтобы писать в несколько строк хоть и минимальное, но все же какое то число include, и заменил все строки на одну единственную
#include "my.cpp" 
и все работает! и без iostream в отдельной персональной строке, потому он уже имеется в сборном пакете.

И вопрос: если так можно делать, и при сравнении обоих вариантов в результате получается исполняемый exe файл совершенно одинаковых размеров, то почему это должен делать я, а не С++?
Наверно не сложно было бы предусмотреть, ну если не в С++, то хотя бы в компиляторе, АВТОМАТИЧЕСКОЕ включение стандартных include, т.е. какой то их набор, пусть даже минимальный, это ж сколько времени можно сэкономить в масштабе всех кто пишет на с++.
Или так нельзя собирать все в пакетик?



Автор: _zorn_ 14.5.2021, 19:42
Цитата(YahоО @  15.5.2021,  02:24 Найти цитируемый пост)
АВТОМАТИЧЕСКОЕ включение стандартных include


1. Это влияет на время сборки. 
2. Что есть "стандартный" набор ? А если он завтра поменяется ?
3. В хороших домах так принято - указывай что используешь )
4. Зачем это делать "С++" (что вы под этим подразумеваете ?), если с этим прекрасно справляются различные IDE ?

На этапе обучения все это может казаться дикостью, но поверьте - люди пишут не только "helloworld" в одном файле. И все это выстрадано  smile 

Автор: YahоО 14.5.2021, 20:18
О то ж, выстрадано, нет чтобы легко и просто, так нет же!
В одном файле, таки да! у меня пока что нету больших программ, значит и удобно писать все в одном файле, и представляете - все что нужно все это пишу перед main, 
ну так же и проще, и что не менее важно - экономно, и с точки зрения объема писанины, но и с позиции понимания текста,  сразу все логично выстаивается, сначала напиши функцию и только потом включай ее в main smile
Ой, а время сборки не смущает, наверно это пока что.

2. А если "стандартный" набор  завтра поменяется ? - вот вот! и пусть меняется, так все ж автоматически должно типа быть, не так как в том мануале невыполнимом ...
4. с этим прекрасно справляются различные IDE - тоесть? сами подставляют/дописывают инклуды? а я значит зря старался собирал свои 70+строчек в пакет? интересно, но в моем билдере ничего такого подстановщика/помощника не заметил ((

Автор: _zorn_ 14.5.2021, 20:30
Цитата(YahоО @  15.5.2021,  03:18 Найти цитируемый пост)
так все ж автоматически должно типа быть, не так как в том мануале невыполнимом ...

А кто это поддерживать будет ? Сама по себе автоматика не особо работает  smile 

Цитата(YahоО @  15.5.2021,  03:18 Найти цитируемый пост)
тоесть? сами подставляют/дописывают инклуды?

Да. Не везде наверное есть, но для golang в vscode/atom точно видел smile 
Для си скорей всего тоже есть но возможно надо настроить.

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

Попробуйте настроить сами сборку/линковку и т.п. (хотя это не интересно на данном этапе, да) чтобы понять "что есть что".

Цитата(YahоО @  15.5.2021,  03:18 Найти цитируемый пост)
зря старался собирал свои 70+строчек в пакет?

Ну не совсем зря. Озадачились вопросом оптимизации труда )
На nodejs горы пакетов пишут для такого  smile

Добавлено через 11 минут и 43 секунды
Цитата(YahоО @  15.5.2021,  02:24 Найти цитируемый пост)
и собрал я все что мог include-s в один my.cpp

По соглашениям, наверное он все же хедер (.h)

Добавлено через 14 минут и 59 секунд
Цитата(YahоО @  15.5.2021,  03:18 Найти цитируемый пост)
В одном файле, таки да! у меня пока что нету больших программ, значит и удобно писать все в одном файле, и представляете - все что нужно все это пишу перед main, 
ну так же и проще, и что не менее важно - экономно, и с точки зрения объема писанины, но и с позиции понимания текста,  сразу все логично выстаивается, сначала напиши функцию и только потом включай ее в main


Это все работает пока программа достаточно простая и только вы над ней работаете. Плюс один человек в проект и все превращается в ад.

Автор: YahоО 14.5.2021, 20:47
он все же хедер (.h)  - учту. Но главное то, что Вы не забраковали такой подход.

Автор: _zorn_ 14.5.2021, 20:50
Цитата(YahоО @ 15.5.2021,  03:47)
он все же хедер (.h)  - учту. Но главное то, что Вы не забраковали такой подход.

Ну так и сами либы сишные так же делают  smile 
Но там все сложнее, например куча инклюдов общих и парочка для определенной платформы/архитектуры (win/lin/mac x86/arm/mips и т.п.)

Но сам поход рабочий вполне.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)