Например, есть функция, которая что-то делает. Как мне объявить и определить массив внутри функции, который я хотел бы выделить/инициализировать только один раз?
void someclass::somefunction(/*parameters here*/)
{
static const my_array[4] = {1,2,3,4}; // #1
/*or just*/
const my_array[4] = {1,2,3,4}; // #2
}
Насколько я знаю, в случае #1 "мой_массив" будет выделен в сегменте данных и инициализирован один раз при первом вызове "somefunction". Но мой коллега высказал предположение, что случай №2 работает аналогично и нет необходимости писать "статическое" ключевое слово.
Поэтому я хотел бы спросить, говорит ли стандарт что-то о случаях #1 и #2 и, если говорит, то что именно? Как я должен определить такой тип массивов, чтобы быть уверенным, что он будет выделен/инициализирован только один раз?
Спасибо.