PHP код:
static const
fmt_str0[] = "Координаты: X = %8.2f, Y = %8.2f, Z = %8.2f",
fmt_str1[] = "Угол поворота: %8.2f°",
fmt_str2[] = "Интерьер: %d, вирт. мир: %d";
Что и где:
fmt_str0[] - строка с тремя параметрами
fmt_str1[] - строка с одним параметром
fmt_str2[] - строка с двумя параметрами
8.2 - форматирование значения аргумента параметра, 8 - ширина, 2 - количество цифр после точки.
PHP код:
const
size0 = sizeof(fmt_str0)+(-5+11)*3,
size1 = sizeof(fmt_str1)-5+11,
size2 = sizeof(fmt_str2)+(-2+11)*2;
Почему так:
sizeof(fmt_str0) - вычисляет общую длину строки, +(-5+11)*3 - добавочная длина для значения трех параметров X,Y,Z.
sizeof(fmt_str1) - вычисляет общую длину строки, +-5+11 - добавочная длина для значения одного параметра A.
sizeof(fmt_str2) - вычисляет общую длину строки, +(-2+11)*2 - добавочная длина для значения двух параметров int, world.
Допустим что у нас следующие значение:
fmt_str0 = 35
fmt_str1 = 30
fmt_str2 = 25
С помощью кода указанного ниже мы вычисляем наибольшее число используя транзитивность порядка, по формуле a > b > c
PHP код:
#if size0>size1
#define size size0
#else
#define size size1
#endif
#if size2>size
#undef size
#define size size2
#endif
И на выходе получаем наибольшее число, т.е. size = 35;
После чего объявляем массив:
PHP код:
new string[size];