Si, j'ai utilisé des structures de données de différents types en C.
Par accesseur, j'entends par exemple le fait de lire, dans une structure, une donnée avec une fonction :
tyedef struct {int Abcisse, int Ordonnee, int Vitesse, int Acceleration} t_Perso;
Au lieu que mon perso lise Perso[2] pour se déplacer, je fais plutôt un
int Vitesse = GetVitesse(Perso);
avec int GetVitesse(t_Perso* Perso) {return Perso->vitesse;}
Ca permet de ne modifier que GetVitesse() le jour où tu modifies ta structure. Evidemment, l'exemple est grossier, mais c'est le principe.
Et sinon, je ne considère pas un quart de demi seconde avoir fait du C de haute voltige, je suppose que nos lecteurs on dû bien rigoler en te lisant, je suis un vrai débutant en C.

Certains sont d'ailleurs très forts ici. Par contre, faire de l'assembleur m'a permis d'être à l'aise avec ce qu'est un pointeur, ça c'est clair. Parce que tu ne peux pas écrire une ligne d'asm sans pointeur, c'est nécessairement aussi familier que le type char pour n'importe quel programmeur.