В первом случае в turnh будет 1, если аргумент попадался, а во втором случае у нас есть короткая версия "-H". Можно как-то совместить выставление turnh и короткую версию "-H", без while'а и switch'а?
Можно как-то совместить выставление turnh и короткую версию "-H", без while'а и switch'а?
Нельзя. Сам таким заморачивался. Либо вариант №1, а в switch отдельным пунктом проверять 0 (если что-то нужно сделать еще с этими флагами), либо вариант №2, а флаги выставлять все в том же switch.