Tag: include guard

Определение переменной в файлах заголовков

Мои самые основные знания о C и процессе компиляции в последнее время стали ржавыми. Я пытался выяснить ответ на следующий вопрос, но я не мог подключить основы фазы компиляции, ссылки и предварительной обработки. Быстрый поиск в Google тоже не помог. Итак, я решил прийти к первому источнику знаний 🙂 Я знаю: переменные не должны определяться […]

Именование включает охранников

Как обычно C ++ содержат защитников? Я склонен видеть это много: #ifndef FOO_H #define FOO_H // … #endif Однако я не думаю, что это очень интуитивно. Не видя имени файла, сложно сказать, что такое FOO_H и к чему относится его имя. Что считается лучшей практикой?

Почему C # C ++ не имеет «стандартного стандарта ISO»?

В настоящее время я работаю над большим проектом и поддерживаю все, что включает охранников, что делает меня сумасшедшим! Написание его вручную – это пустая трата времени. Хотя многие редакторы могут создавать включенные охранники, это не очень помогает: Редактор генерирует защитный символ на основе имени файла. Проблема возникает, когда у вас есть заголовки с одинаковым именем […]

Является ли # прагма когда-то безопасным включать охрану?

Я читал, что есть некоторая оптимизация компилятора при использовании #pragma once которая может привести к более быстрой компиляции. Я признаю, что это нестандартно и, следовательно, может представлять проблему межплатформенной совместимости. Это что-то, что поддерживается большинством современных компиляторов на платформах без windows (gcc)? Я хочу избежать проблем с компиляцией платформы, но также хочу избежать дополнительной работы […]

Почему мои защитники не препятствуют рекурсивному включению и множественным определениям символов?

Два распространенных вопроса include охранников : ПЕРВЫЙ ВОПРОС: Почему не include защитников, защищающих мои файлы заголовков от взаимного, рекурсивного включения ? Я продолжаю получать ошибки о несуществующих символах, которые, очевидно, существуют или даже более странные синтаксические ошибки каждый раз, когда я пишу что-то вроде следующего: «Ах» #ifndef A_H #define A_H #include “bh” … #endif // […]

Давайте будем гением компьютера.