У меня есть немного кода («core.h» ниже), который используется с несколькими различными обертками. Каждая из оберток требует, чтобы он имел массив разного размера. В настоящее время я использую #define
в файле заголовка обертки, чтобы указать размер этого массива, но #define
должен быть записан в файл до включения заголовка.Заставляет заказ/размещение #include плохой практики?
/*wrapper1.h*/
#define ARR_SIZE 42 // this must be written before-
#include "core.h" // this to ensure correct operation
//...
/*wrapper2.h*/
#define ARR_SIZE 128
#include "core.h"
//...
/*core.h*/
#ifndef ARR_SIZE
#define ARR_SIZE 256 // default value
#endif
struct foo
{
char arr[ARR_SIZE];
//...
};
//...
Это плохая практика? Если да, есть ли более приятный вариант?