Ну это не индивидуальное преимущество данного метода, ибо и в "ручном" подсчёте можно составлять формулу по принципу: "число_символов_в_строке_без_учёта_спецификаторов + содержимое спецификаторов по отдельности + 1". Выйдет так же "прозрачно", как и в описанном приёме подсчёта через sizeof
Странно, что ты рассматриваешь альтернативу данному методу лишь в виде расчёта размера при помощи калькулятора и указания этого размера в виде целого числа. (считай это комментарием ко второму преимуществу)
Опять же, при ручном подсчёте так же можно использовать формулы. И если пользоваться редактором, что выводит количество выделенных символов, подсчитать новый размер не составит большого труда.
Ну это тоже не является заслугой сугубо этого метода. Грамотно использовать стэк можно и при ручном расчёте точно так же, как и использовать стэк неграмотно в описанном тобой методе, подставляя в формулу рандомные значения.
Ну да, на примере коротких строк код выглядит вполне нормально. Но попробуй, например, вот такой вариант:
И убери из запроса переменные: mOwner, [mExit][0] и cY.PHP код:
static const fmt_str[] = "INSERT INTO `hotel` (mID,mOwned,mOwner,mX,mY,mZ,mCar,eX,eY,eZ,mLock,mMoney,mOplata,mVirt,mCarDrived,cX,cY,cZ,cRZ) VALUES (%d, 'None', %d, %f, %f, %f, %d, %f, %f, %f, 0, 2000, 1000, %d, 0, %f, %f, %f, %f)";
new string[sizeof(fmt_str) + (-2 + 4) + (-2 + 33) + (-2 + 11) + (-2 + 23) + (-2 + 14) + (-2 + 55) + (-2 + 44)];// Формула от балды написана. Суть не в ней
format(string, sizeof(string), fmt_str, HotelInfo[i][mID], HotelInfo[i][mOwner], HotelInfo[i][mEnter][0], HotelInfo[i][mEnter][1], HotelInfo[i][mEnter][2], HotelInfo[i][mCar], HotelInfo[i][mExit][0], HotelInfo[i][mExit][1], HotelInfo[i][mExit][2],HotelInfo[i][mVirt],cX,cY,cZ,cRZ);
А потом представь вот такой код в реализации подобного подсчёта, где запрос придётся разбить на несколько массивов
Чем больше спецификаторов в строке и чем больше строк, тем нереальней становится нормальная работа с кодом. И дело тут не в привычке, а в том, что довольно трудно сопоставить 13 спецификатор из строки какой-то определённой переменной, ибо приходится по всему экрану глазами водить в поисках нужных данных.
Опять же, ты довольно однобоко рассматриваешь альтернативы :) Но об этом уже выше сказал