• Правильно ли в C++ использовать директиву препроцессора define?

    maaGames
    @maaGames
    Погроммирую программы
    "using namespace std" нежелательно испоьлзвоать в h-файлах, но в cpp-файлах можно пользоваться без угрызений совести. В случае конфликтов можно указывать конкретное пространство, независимо от использованных using. Так же можно использовать using namespace внутри конкретной функции или внутри любого блока кода, ограниченного { }.
    Ответ написан
    Комментировать
  • Правильно ли в C++ использовать директиву препроцессора define?

    @Acaunt
    define полезная штука и её не обязательно использовать так как ты (лично я не вижу смысла использовать её для этого).

    Например:
    Если у тебя много файлов ссылаются друг на друга то можно конечно использовать #pragma once, но эта штука работает не во всех компиляторах. Поэтому предпочтительнее использовать:
    #ifndef FILE_H
    #define FILE_H
    #include "file1.h"
    #include <iostream> например этот  заголовочный файл объявлен и в file1.h
    #endif // !FILE_H


    Ещё в заголовочном файле math.h есть константы (число пи например), но они скрыты если не объявлен #define _USE_MATH_DEFINES

    Подобную штуку я использовал в своем проекте вот пример:
    #if TYPE_64
    using type = uint64_t; 
    #elseif defined(TYPE_32)
    using type = uint32_t; 
    #elseif defined(TYPE_16)
    using type = uint16_t; 
    #else
    using type = uint8_t; 
    #endif


    Ещё можно подобные штуки расставить по всему коду для вывода информации о работе программы на проверку есть ли #define DEBUG, а когда программа готова то просто убрать этот define и программа будет чуть быстрее работать, так как участки кода с выводом информации не будут работать.
    Ответ написан
    1 комментарий
  • Правильно ли в C++ использовать директиву препроцессора define?

    @res2001
    Developer, ex-admin
    Помимо define в плюсах есть и другие инструменты.
    Для констант лучше использовать constexpr, для генерации кода шаблоны.
    Для define то же есть своя ниша для использования - тот вариант, что вы привели в примере и т.п.
    В Си кроме define нет ничего другого. В плюсах есть выбор.
    Ответ написан
    Комментировать