Можно использовать и просто static, без const, но тогда будет сложнее понять назначение строки fmt_str, т.к. будет возможность изменить её содержимое. Код в первую очередь должен быть понятным, а не настроченным абы как за 3 секунды.
Вид для печати
Это что-то меняет? В моём методе копия форматной строки в секции данных будет всего одна. По сути, использование static const для объявления той строки даёт лишь больше возможностей для обращения с ней (например, с тем же оператором sizeof). На общий размер содержимого секции данных это влиять не должно.
не?PHP код:
new rand = random(100_000);//Переменная намба уан
static const fmt_str[] = "rand = %d";//Переменная намба ту
new string[sizeof(fmt_str)-2+5];//Переменная намба фри
fotmat(string, sizeof(string), fmt_str, rand);//Как ты сказал выше, для хранения текста в format выделяется память, так что ещё минус память
SendClientMessage(playerid, -1, string);
Wut?! У тебя выше уже созданы 3 переменные и память под них выделена в секции данных и стеке. Где ты увидел выделение памяти в format ?
Ок, раз уж ты так не хочешь верить, попробуй вот что:
PHP код:
#include <a_samp>
main(){
new rand = random(100_000);
new string[32]; // не знаю, откуда это число, но пусть будет так
format(string, sizeof(string), "rand = %d", rand);
SendClientMessage(playerid, -1, string);
}
Скомпилируй эти 2 скрипта с ключом "-a", чтобы сгенерировать ассемблерные листинги, и сравни получившиеся результаты.PHP код:
#include <a_samp>
main(){
new rand = random(100_000);
static const fmt_str[] = "rand = %d";
new string[sizeof(fmt_str)-2+5];
format(string, sizeof(string), fmt_str, rand);
SendClientMessage(playerid, -1, string);
}