Это вводящий в заблуждение код.Эти параметры буквально означают char *longstr1
(тьфу).Там нет проверки границ, ничего.Вы можете передать указатель на массив любой длины.Кажется, вы уже это знаете.
Теперь можно утверждать, что этот подход самодокументирован, но я бы сказал, что он документирует ложь.Если указатель «должен» иметь конкретную границу, то это должно быть задокументировано с комментариями над объявлением функции, а не предлагать читателям, что оно будет принудительно установлено по типу.Возможно, что автор подумал, что!
В конечном счете, чтобы действительно выяснить, почему он был написан таким образом, вы должны найти автора и спросить его.Все остальное - догадки.