Принимая во внимание VLA (массив переменной длины), я хотел бы спросить ваше мнение по следующей проблеме: Если массив определен в глобальном масштабе в одном файле:
int arr[] = {1, 2, 3};
// in the same file it is no problem to obtain the number of elements in arr by
#define arr_num sizeof(arr)/sizeof(arr[0])
// or
enum {arr_num = sizeof(arr)/sizeof(arr[0])};
Проблема заключается вв других файлах того же проекта я хотел бы снова создать другие массивы в глобальном масштабе с тем же количеством элементов, что и в arr.Но как можно достичь этого в C99, если нет никакого способа «выйти» из enum или #define.Конечно, можно # определить количество элементов arr вручную в заголовочном файле, а затем использовать его в других файлах, но это очень неудобно, так как при изменении количества элементов в массиве arr также необходимо вручную изменитьзначение этого #define (это еще более неудобно, когда arr является массивом структур).
Большое спасибо за любую помощь.