2 / 2 / 0
Регистрация: 19.12.2013
Сообщений: 216
|
||||||
Применение директив условной компиляции20.05.2016, 15:18. Показов 2982. Ответов 8
Метки нет Все метки)
(
Здравствуйте !
Подскажите пожалуйста, для чего в этой программе используются директивы условной компиляции, программа рабочая ( #if, #elif, #else, #endif ) ? Можно же написать программу без них. Как-то не понятно для чего тут директивы, воспринимается это как не нужная выдумка. Может это и нужно, но когда и в каких ситуациях представить не могу ???
0
|
20.05.2016, 15:18 | |
Ответы с готовыми решениями:
8
Символ условной компиляции для конфигурации Trial Применение статического метода выдает ошибку компиляции Программное изменение директив компилятора |
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||||||
20.05.2016, 16:35 | ||||||
Это понятно, я не имел в виду не данный конкретный пример, а вообще по сути вопроса ТС.
Автор судя по всему не понимал зачем применять директивы препроцессора, если можно примерно так:
0
|
2 / 2 / 0
Регистрация: 19.12.2013
Сообщений: 216
|
|
21.05.2016, 17:22 [ТС] | |
aquaMakc,
Спасибо ! Но все таки я так и не понял по Вашим комментариям ( и других товарищей с форума ) , может я сформулировал вопрос не понятно ? Можете еще немного пояснить, в смысле принципиального понимания ????? Использование директив препроцессора : они используются для того, чтобы исключить компиляцию отдельных частей программы. На примере данной программы, что здесь происходит по другому работа компилятора, чем в обычной программе, без директив препроцессора ?
0
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
23.05.2016, 10:55 | |
Владимирл, Конкретно в вашем примере без директив оно вообще не будет компилироваться, т.к. будет 3 функции с одинаковой сигнатурой. С директивами в exe будет только один вариант этой функции.
В моём варианте без директив в итоговый Exe будут скомпилированы все 3 варианта действий. Придумал такой пример, где это будет нужно: У тебя, например, программа в 3-х исполнениях. Бесплатный Lite, платный Pro и очень платный Super Ultimate. Очень платный имеет все функции, просто платный почти все, а Lite только одну. В таком случае директивами препроцессора ты определяешь какие функции в какое исполнение компилировать. Если бы это делалось простыми if - тогда не самый благонадёжный пользователь может взять бесплатный lite, декомпилировать, например, программой dotPeek и перекомпилировать с максимумом функций. А с директивами он других вариантов при декомпиляции и не увидит.
0
|
Администратор
![]() ![]() |
|
18.11.2018, 14:21 | |
JustLearn, ответ такой же как и для C#, но если есть сомнения, то создай тему в разделе C++
0
|
18.11.2018, 14:21 | ||||||
Помогаю со студенческими работами здесь
9
Применение условной операции Директивы условной компиляции
Необходимо разобраться с директивами условной компиляции arduino ошибка условной компиляции в NewLiquidCrystal Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Кастомные аллокаторы в C++ и оптимизация управления памятью
bytestream 14.04.2025
Работа с памятью в С++ всегда была и остаётся одной из самых увлекательных и сложных задач для программиста. Любой опытный C++ разработчик подтвердит: стандартные механизмы аллокации памяти – штука. . .
|
Организация сетей в Kubernetes и эффективное развертывание
Mr. Docker 14.04.2025
Сетевая инфраструктура Kubernetes представляет собой сложную, но хорошо спроектированную систему, которая позволяет контейнерам взаимодействовать между собой и с внешним миром. За кажущейся простотой. . .
|
Многопоточность в Rust: Fearless concurrency и практические примеры
golander 14.04.2025
Многопоточное программирование связано с рядом известных проблем. Наиболее распространенные из них — гонки данных (data races), взаимные блокировки (deadlocks) и условия гонки (race conditions). Эти. . .
|
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
|
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
|
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
|
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
|
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
|
Аутентификация и авторизация JWT в микросервисах с API Gateway
stackOverflow 12.04.2025
В традиционных монолитных приложениях безопасность часто реализуется как единый защитный периметр - пользователь проходит аутентификацию один раз, после чего получает доступ ко всем функциям системы. . . .
|
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
|