Я бы настоятельно не рекомендовал бы определять статические массивы (т. Е. Фактически указывать static int foo[8056]
) в заголовочных файлах.Гораздо лучше объявить их как extern
в заголовочном файле и определить их в одном исходном файле на C или C ++.
Каждый исходный файл, в который включены эти заголовки (даже косвенно), создаст свое собственное определение для этих статических массивов.Нет гарантии, что компилятор / компоновщик оптимизирует их в одно определение, даже в исходных файлах, где они не используются.Фактически, во многих случаях компилятор не может оптимизировать их.Это может привести к тому, что ваши статические данные будут занимать много места на диске и, возможно, также оперативную память.
Я не могу много сказать о других 4,4+ МБ ваших заголовочных файлов, так как я не знаючто в них.