Я хочу поместить определения массива в исходный файл C или C ++.

ю, что это вопрос, который должен знать каждый программист, но я не знаю. Давненько не программировал на С, и я много чего забыл.

Мой вопрос:

У меня есть три огромных статических массива, определенных в заголовочном файле. Кто-то сказал мне, что лучше объявить ихextern в заголовочном файле и определите их в одном исходном файле на C или C ++.

Как я могу это сделать?

Вот мой заголовочный файл:

#ifndef _TEMPLE_OBJECT_H_
#define _TEMPLE_OBJECT_H_


#define NUM_TEMPLE_OBJECT_VERTEX 10818

static const float TEMPLEVertices[NUM_TEMPLE_OBJECT_VERTEX * 3] = {...};
static const float TEMPLENormals[NUM_TEMPLE_OBJECT_VERTEX * 3] = {...};
static const float TEMPLETexCoords[NUM_TEMPLE_OBJECT_VERTEX * 3] = {...};

#endif

Если я использую исходный файл C ++, могу ли я определить класс?

ОБНОВИТЬ:
Я думаю, что проблема заключается в:
Каждый исходный файл, в который включены эти заголовки (даже косвенно), будет генерировать свое собственное определение для этих статических массивов. Нет гарантии, что компилятор / компоновщик оптимизирует их в одно определение, даже в исходных файлах, где они не используются. Фактически, во многих случаях компилятор не может их оптимизировать. Это может привести к тому, что ваши статические данные будут занимать много места на диске, а также, возможно, оперативную память.

Спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос