Wofür sind diese beiden Zeilen?
Bild   Bild   Bild  

Puh, ich dachte, das Problem liegt an der I2C Ansteuerung, jetzt sehe ich, daß wir ganz unten in der Krabbelgruppe anfangen müssen Bild  

for(;; ) ist eine "never ending story" also Endlos Schleife, man kann auch while(1) schreiben, ist egal, das Programm macht nichts anderes, außer alles was in Klammern {} nach for(;; ) steht auszuführen.
char i2cpuffer[2] deklariert ein Array mit zwei char Werten, und wird wohl gebraucht,
i2cpuffer[0] bezieht sich auf den ersten Wert i2cpuffer[1] auf den zweiten Bild  
Ich empfehle Dir irgendein C Buch "C programmieren von Anfang an" von Helmut Erlenkötter oder so, ist sehr gut für Anfänger geeignet, oder "Programmieren in C" von den Vätern der Sprache, ist aber etwas anspruchsvoller als das erste.
Sonst Tutorials im Netz und Üben am PC.
Sonst kannst Du natürlich weiter Fragen, wenn ich die Antwwort weiß, helf ich Dir, sonst jemand anders Bild  

Gruß Sebastian