34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
1 | |
Директивы препроцессора19.02.2023, 13:56. Показов 754. Ответов 9
Метки нет (Все метки)
Задача следующая при вычислении переменных в программе, дальше они проверяются. Но в зависимости от параметров, границы могут варьироваться. Собственно, чтобы не плодить внутри кода проверки через условия, я хотел бы перенести их в заголовок и определить с помощью препроцессора. Как лучше это сделать, можно на примере показать.
0
|
19.02.2023, 13:56 | |
Ответы с готовыми решениями:
9
Директивы препроцессора Составить программу, использующую директивы препроцессора Директивы препроцессора Директивы препроцессора Директивы препроцессора |
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
|
|
19.02.2023, 14:04 | 2 |
JIupToH, ничего не понятно. Приведите минимальный пример, демонстрирующий то, что есть. И его модификацию, демонстрирующую то, что хотите видеть. Модификация не обязана быть компилируемой, просто псевдокод, выражающий ваши хотелки.
0
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
||||||
19.02.2023, 14:16 [ТС] | 3 | |||||
zayats80888,
И вынести эти условия из тела функции в директивы препроцессора
0
|
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
|
|
19.02.2023, 14:22 | 4 |
JIupToH, если
alpha и length это рантайм параметры, то препроцессор тут не поможет.Если я правильно понял, вам нужно в рантайме одной паре значений сопоставить другую пару. Сделать это можно через хэш-таблицу. Правда если у вас всего четыре(пять с учетом "для всех остальных случаев") соответствий, то смысла в хэш-таблице особо нет.
0
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
19.02.2023, 15:15 [ТС] | 6 |
zayats80888, Байт, это константы
0
|
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
|
||||||
19.02.2023, 15:33 | 7 | |||||
Можно просто переписать ваш код в constexpr функцию, тогда если это константы(константные выражения), то всё будет вычисленно на этапе компиляции.
Кликните здесь для просмотра всего текста
0
|
Диссидент
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
19.02.2023, 16:07 | 8 |
JIupToH, Все зависит от того, какие цели ты преследуешь.
Если важно, чтобы параметры можно было менять, не перетранслируя программу, то самое им место в текстовом файле. Правда, придется писать программку чтения их этого файла. Хотя есть уже готовые решения, типа Setting. Лично я давно-давно "изобрел" механизм хранения таких переменчивых данных в едином текстовом файле. Так и тестовые константы (удобно для перевода на другие языки), и даже менюшки, и вот такие числовые параметры. Если же тебе нужен только удобный обзор кода программы, то тут ты сам себе советчик. Но я бы выбрал вариант с массивом структур, заполненным константами.
0
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
19.02.2023, 19:31 [ТС] | 9 |
Байт, значения меняться не будут, и хотел сделать это через макрос.
0
|
Модератор
12728 / 7558 / 1762
Регистрация: 25.07.2009
Сообщений: 13,934
|
||||||
20.02.2023, 01:00 | 10 | |||||
JIupToH, если пишете на С++, как вариант, можно в структуру конструктор добавить:
0
|
20.02.2023, 01:00 | |
20.02.2023, 01:00 | |
Помогаю со студенческими работами здесь
10
Директивы препроцессора Директивы препроцессора Директивы препроцессора! Директивы препроцессора Директивы препроцессора Директивы препроцессора.Ошибка #error не работает. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |