В file.h
можно поставить:
#include <stddef.h>
extern char *myArray[];
extern const size_t myArray_len;
Тогда в file.c
вы получите:
#include "file.h"
char *myArray[] = { "str1", "str2", ... "str100" };
const size_t myArray_len = sizeof myArray / sizeof myArray[0];
Таким образом, ваши другие модули могут ссылаться на myArray_len
, и вам не нужно явно указывать размер массива где-либо.
(Недостатком является то, что myArray_len
является просто const
-качественной переменной, а не константным выражением, что означает, что вы не можете использовать ее для таких вещей, как инициализация объектов со статической длительностью хранения или определение размера неизменяемых массивов).