Liste des Groupes | Revenir à cl c |
Il 13/03/2025 16:44, pozz ha scritto:Consider this code:
>
if (cond1) {
...
} else if (cond2) {
...
} else if (cond3) {
...
}
>
I want to activate every single if with a macro preprocessor. All the
combinations are possible: only the first, only the second, only the
third, the first and second... and so on.
>
What's the best method to have a clean code that is always compiled
without errors?
You're right, a real example is better to define my problem.
I have a project that can be compiled in different ways, depending on
the final product model (it's an embedded platform, it's a material
device).
I have three models with different characteristics: MODEL_A, MODEL_B,
MODEL_C. Three different builds that are managed at compile time by
defining MODEL macro as MODEL_A, MODEL_B or MODEL_C.
For each model, I could have a different features set. FEATURE_1,
FUTURE_2, FUTURE_3, ...
#if MODEL == MODEL_A
# define FEATURE_1 1
# define FEATURE_2 0
# define FEATURE_3 0
#elif MODEL == MODEL_B
# define FEATURE_1 0
# define FEATURE_2 1
# define FEATURE_3 0
#elif MODEL == MODEL_C
# define FEATURE_1 1
# define FEATURE_2 1
# define FEATURE_3 1
#endif
Now, on the full-featured model (MODEL_C) I could write:
if (key == 1) {
...
} else if (key == 2) {
...
} else if (key == 3) {
...
} else {
...
}
Les messages affichés proviennent d'usenet.