Как мне все включить - PullRequest
       0

Как мне все включить

2 голосов
/ 11 марта 2011

Я слишком долго боролся с моим компилятором.Проблемы с циклическими включениями, переопределениями, «отсутствующими»; 'до * "и т. д.

Похоже, это место, где можно получить хороший ответ.

Как мне включить все во все остальное, и никогда не нужно беспокоиться о тонкостях включений когда-либо, еще когда-либо?Какую комбинацию #DEFINE, #pragma, #include или что-либо еще мне нужно сделать, чтобы гарантировать, что типам данных в темных глубинах моей иерархии проекта не составит труда узнать, что еще есть?

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

Приветствия, Брайан

Ответы [ 3 ]

3 голосов
/ 11 марта 2011

Прямое замедление в заголовках и включениях в реализации (.c, .cpp и т. Д.).

0 голосов
/ 11 марта 2011

в начале каждого заголовочного файла,

#ifndef   __MYHEADER_H__
#define   __MYHEADER_H__

в конце,

#endif /* __MYHEADER_H__ */

может избежать повторного включения файла заголовка.

, если вы используетеVisual Stuido, вы можете просто поместить

#pragma once

в начало файла заголовка.

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

0 голосов
/ 11 марта 2011

Хороший вопрос.Я тоже хотел бы знать, как это сделать.Вот некоторые из моих приемов:

  1. Вычисление структуры найма файла (какой файл использует файл) для построения необработанного концептуального графа.

  2. Использованиеследующая структура кода полезна для предотвращения переопределения.Подробности можно найти здесь.

#ifndef MY_CLASS

#define MY_CLASS 
#endif

Это означает, что если файл уже включен, он не будет включен снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...