GNU getopt позволяет использовать параметры в любом месте командной строки.Однако при синтаксическом анализе он переупорядочивает argv
.В этом можно убедиться, сохранив пример кода в файле, скомпилировав его и запустив результат:
./a.out
./a.out -a
./a.out foo
./a.out -a foo
./a.out foo -a
Последние два приведут к одинаковым результатам.