Пусть компилятор проверит количество инициализаторов массива
Инициализация массива (в C ++, но любое решение, которое работает для C, вероятно, также будет работать и здесь) с меньшим количеством инициализаторов, чем с элементами, вполне законна:
int array[10] = { 1, 2, 3 };
Однако это может быть источником неясных ошибок. Есть ли способ заставить компилятор (gcc) проверять количество инициализаторов для одного конкретного массива и выдавать предупреждение или даже ошибку, если объявлено и фактический размер не совпадает?
Я знаю, что могу использоватьint array[] = { 1, 2, 3 };
и затем может использовать статические утверждения, включающиеsizeof(array)
чтобы проверить мои ожидания там. Но я пользуюсьarray
в других единицах перевода, поэтому я должен объявить его с размером e, xplicit. Так что этот трюк не сработает для меня.