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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NEW_NAME
1 / 1 / 0
Регистрация: 04.10.2012
Сообщений: 45
#1

Повторное подключение. Почему не ограничено автоматически? - C++

21.11.2012, 14:51. Просмотров 539. Ответов 2
Метки нет (Все метки)

Есть разные способы ограничить повторное подключение заголовочных файлов, библиотек. Но неужели нельзя было организовать компиляторы так, чтобы они автоматически отсекали повторные подключения? Отсюда вопрос: в каких-то ситуациях имеет смысл подключать заголовочных файл не один раз? Зачем?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 14:51     Повторное подключение. Почему не ограничено автоматически?
Посмотрите здесь:

Почему после считывания матрицы из файла начинается повторное считывание? - C++
Здравствуйте. ПРоблема такова, считывает размер матрицы и саму матрицу, после успешного считвания начинает по новой её считывать, хотя...

Почему delete не устанавливает автоматически указатель в NULL? - C++
Почему delete не устанавливает автоматически указатель в NULL?

Почему C++ выдает Over9000 ошибок при подключение GDI+ - C++
Почему C++ выдает Over9000 ошибок при подключение GDI+ ? #include <Windows.h> #include <gdiplus.h> #include <stdio.h> using...

Повторное воспроизведение - C++
Доброго времени суток! Подскажите, пожалуйста, как сделать так, чтобы в консольке после выполнения всего, что было задано, нажал на любую...

Повторное использование кода в C++ - C++
Всем доброго дня! Прошу помочь начинающему. В данный момент обучаюсь по книге Прата С.. Застрял на задаче про использование класса...

Повторное выполнение кода - C++
Здравствуйте! Ребята как я могу сделать так чтобы эта программа т.е Калькулятор повторил свою работу каждый раз когда я получаю свой...

Повторное чтение файла - C++
Привет, у меня есть файл с несколькими строками, я беру одну строку - проверяю на условие какое-то, если она подходит по условию - пишу в...

повторное вполнение действия - C++
Мне стал интересно как сделать чтобы например дисковод окрывался и закрывался каждые 30 секунд в течении 10 минут пожалуста выложите...

Повторное открытие файла - C++
пишу очередную учебную программу, и возник вопрос вопросов. я открываю текстовый файл откуда построчно читаю фалы и считаю строки в...

Повторное использование кода - C++
Предположим для класса перегружен oператор+ который принимает либо строку в стиле С, или такой же объект. myString...

Повторное определение вектора - C++
Почему можно написать vector<int> g(n, 8); , когда g — уже определенная глобальная переменная, и оно скомпилируется, но будет работать...

Повторное выполнение цикла - C++
#include <stdio.h> #include <conio.h> #include <locale.h> #include <iostream> int main() { setlocale(LC_ALL, "rus"); int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.11.2012, 15:17     Повторное подключение. Почему не ограничено автоматически? #2
Затем, что это не подключение чего бы то ни было. Это тупая вставка содержимого файла в то, что будет передаваться компилятору. Конечно, можно вставить несколько раз и всё поломать, если вставлять бездумно.

Затем, что так проще. «Я компилятор. И хотел бы, в идеале, чтобы за меня эту проблему решал программист».

Затем, что есть #pragma once, которая «автоматически отсекает повторные подключения».

Затем, что обратная совместимость и никто не будет менять то, что живёт уже 40 лет, дабы ничего не сломать. Каким бы ужасным оно ни было.

В принципе, можно придумать такой вариант:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int lookup_table_1[] = {
#include "big_data1.dat"
,
#include "big_data2.dat"
,
#include "big_data3.dat"
};
 
int lookup_table_2[] = {
#include "big_data4.dat"
,
#include "big_data2.dat" // внезапно
,
#include "big_data5.dat"
};
Естественно, несколько раз вставлять можно только сырые данные (или сырой код), но никак не определения, так как они не могут повторяться. Да и то это знак, что вы что-то делаете не так.

Не парьте себе мозг. Если что-то можно делать, это вовсе не обязательно делать.
NEW_NAME
1 / 1 / 0
Регистрация: 04.10.2012
Сообщений: 45
21.11.2012, 16:07  [ТС]     Повторное подключение. Почему не ограничено автоматически? #3
Затем, что так проще. «Я компилятор. И хотел бы, в идеале, чтобы за меня эту проблему решал программист».
Ну это ж не логично. Тем более инклудами занимается препроцессор.
Затем, что обратная совместимость и никто не будет менять то, что живёт уже 40 лет, дабы ничего не сломать. Каким бы ужасным оно ни было.
Вот это ответ.
В принципе, можно придумать такой вариант:
Вот и пример. Супер)
Не парьте себе мозг. Если что-то можно делать, это вовсе не обязательно делать.
Ну почему? Знание лучше, чем не знание.

Вообще спасибо.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru