Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

c scripte

Brigitte Woort / 4 Antworten / Flachansicht Nickles

Hallo, warum sind die c scripte so unterschiedlich? Ich habe nach einem Anfänger Beispiel gesucht  'Hallo Welt'  Bisher hat  eine Variante funktoniert, wenn ich <sdio.h> wegslasse.


getest mit turbo c unter Windows


bei gcc unter Linux hatte ich syntaxfehler aufällig war das sie sich fast immer  auf  den Inhalt von 'int  main' bezogen


Muss ich für den jeweiligen compiler die passenden Scripte wählen?

bei Antwort benachrichtigen
vergisses Brigitte Woort „c scripte“
Optionen

Hallo Brigitte,

Erst mal eine kurze Anmerkung:
C gibt es seit ca. 1972 und läuft auf diversen verschiedenen Prozessorenfamilien.
Die Microsoft- bzw. Intel Welt ist nur eine davon.

Nun zu der Prozessorenabhängigkeit in der Programmierung:

Je nach Prozessor unterscheidet sich die Speicherorganisation.
Das spielt dann eine Rolle, wenn man Daten auf Bitebene manipuliert.

Die kleinste Informationseinheit ist das Bit mit 2 möglichen Zuständen.
Die nächstgrößere Informationseinheit ist das Byte mit 8 Bit.
Bis hierhin ist alles ja noch ganz einfach, da die logische Speichereinheit mit der physikalischen übereinstimmt.

Da man mit einem Byte nur 256 verschiedene Zustände darstellen kann, was für den Bedarf nicht ausreicht, hat man 2 Bytes zu einem Wort bzw. 2 Wörter zu einem Doppelwort als logische Speichereinheit zusammengefasst.
Nun stellt sich das Problem der Priorität:
Welches der beiden Bytes ist das Höherwertige ?
Leider wurde diese Frage je nach Prozessorenhersteller unterschiedlich gelöst.
Mal war es das 2. Byte das Höherwertige (Most significant Byte), mal war es das 1. Byte.
Das waren dann die Little Endians (wie z. B. Intel) bzw. die Big Endians (wie z. B. Motorola).

siehe auch: http://www.cs.umass.edu/~verts/cs32/endian.html

Zur Vereinfachung der Programmierarbeit wurden dann diverse Präprozessor Makros entwickelt, die den Zugriff auf die Bits kapseln sollen und damit eine einheitlichere logische Sicht auf Bits und Bytes ermöglichen. Diese Makros sind allerdings immer mit Vorsicht zu genießen !

Da Du offensichtlich gerade erst mit der C Programmierung anfängst, sollten derartige Bitmanipulationen im Moment noch keine große Rolle spielen und Du solltest Dich deshalb noch nicht allzu sehr damit befassen.
Im fortgeschrittenen Statium kommst Du allerdings nicht mehr daran vorbei ;-)

Zur Trickprogrammierung:
ANSI C schränkt die Möglichkeiten zur Trickprogrammierung ein, verhindert sie aber nicht.
So kann man z. B. Unions zum Vermatschen von Daten mißbrauchen.
Weiter will ich an dieser Stelle gar nicht darauf eingehen, je weniger Du davon weißt, umso besser ist es für Deinen Programmierstil.


Gruss, vergisses

bei Antwort benachrichtigen