vorallem finde ich es komisch, dass auf jeder seite anderst beschrieben wird, wie ich eine funktion programmieren kann (Zumindest sehen die befehle anderst aus)
- Weil man es eben auf verschiedene Art und Weise in C realisieren kann.
Es gibt wirklich nur relativ wenige "Grundbefehle" in C.
z.B. switch, if, for, while usw.
Alles was über diese wenigen Befehle hinaus geht ist in Librarys versteckt.
Es gibt nun einige Standard Bibliotheken wie z.B. string.h die fast jeder C Compiler hat und es gibt spezifische Bibliotheken die speziell zum Compiler, dem Controller, oder der Peripherie ( z.B lcd.h ) gehören.
Du kannst mit einiger Erfahrung auch selber solche Bibliotheken schreiben.
Im Prinzip ist eine von Dir gewünschte Funktion in so einer Library vorhanden und Du rufst sie dann von deinem Programm aus auf.
lcd_putsf("string"); ruft zum Beispiel eine Routine auf die den Text string an ein LCD Display ausgibt.
Dazu muss vorher eine passende Library eingebunden sein.
z.B. #include <lcd.h>
Du rufst also dann in der Library lcd.h den Funktionsaufruf lcd_putsf auf und übergibst ihm den Text string.
Dieser Programmteil kümmert sich darum, das der Text string auf dem Display ausgegeben wird, ohne das Du dich weiter darum kümmern musst.

Du kannst Dir aber auch selber solche includes schreiben um vieleicht ein I²C EEPROM zu beschreiben.
Dort könnte dann eventuell ein ee_putsf("string"); Programmteil drin sein, der den ankommenden Text in ein EEPROM schreibt.
Diesen include kannst Du dann in jedem neuen Programm verwenden, in dem so eine Funktion notwendig ist.

Ich hab mir z.b. kürzlich eine lib geschrieben, in der alle Funktionen zum Ansteuern eine AD9834 ( DDS Chip ) drin sind.
Im Hauptprogramm brauch ich dann blos setftw(12345) eingeben um das Tuningword für eine bestimmte Frequenz einzustellen.

Die Sache mit den lib's ist bei "C" eigentlich genial, nur am Anfang nicht so leicht zu verstehen.