Очевидное объяснение состоит в том, что в dmc есть ошибка.Сообщение об ошибке очень запутанно: для начала, static
не может появиться где-либо в параметре функции, как внешне, так и иначе.Что касается квалификаторов типов, то в стандарте ясно, что классификаторы типов в массиве применяются к отдельным элементам массива (и это применяется рекурсивно).Написанное канонически, объявление вашей функции будет выглядеть следующим образом:
void f1(String32 const* tokens)
, которое после применения typedef становится:
void f1( char const (*tokens)[MAXLLENGTH32] );
Что вполне допустимо.