Это законно? Да. Статическую переменную на уровне файлов нельзя увидеть снаружи модуля перевода, но если этот модуль перевода публикует адрес каким-либо образом (как у вас), к нему можно получить доступ или изменить его путем разыменования этого адреса.
Является ли этохорошая идея? На самом деле, нет. Весь смысл статики на уровне файлов состоит в том, чтобы защитить их от вещей за пределами модуля перевода. Если вы собираетесь это разрешить, на самом деле нет никакого смысла вообще помечать его как статическое.
Просто определите его как uint8_t actionResult[10] = {0x00};
и пусть main
использует имя переменной, а не получает и разыменовывает ее адрес.