Pour le futur: Fonctions Struct et organisation + couts des actions d'un programme.
Pour le futur pensez aux fonctions c'est I-N-D-I-S-P-E-N-S-A-B-L-E dans tout langage, aux structs/enum/classe (selon le langage) et a organiser votre code et au coût des choses. Faire les open a chaque tout de boucle est pas magiquement optimiser.
Un compilateur fait un boulot de dingue pour optimiser, mais pas de la magie qui irais contre ce que ont dit explicitement non plus. ;)