WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

 
 
Themen-Optionen Ansicht
Alt 22.11.2003, 10:41   #9
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

C Programme haben keine Empathie. Das heißt, Code zu schreiben ist technisch richtig oder nicht. Etwas hineinzugeheimsen spielt es nicht.

Die Emotion kommt mit dem Designergedanken, mit den Techniken herumzuspielen, im übrigen Bibliotheken zu verwenden.

Wichtig sind die Wertebereiche von Datentypen. Sowie die Unterscheidung von Datentypen zu Zeigervariablen, die Adressen beinhalten und EBEN NICHT Daten. Zeigervariablen können auch wiederum auf Zeiger - im Englischen "Pointer" - verweisen (z.B. char **argv <-- Zeiger oder char *argv[] <-- Array (=Feld)).

Unterschiedlich zu einem Zeiger ist ein Array. Das Array stellt eine Anfangsadresse von gleichlautenden Elementen oder Kapselschlüssen (Objekte) dar.

Einem Arraybezeichner kann keine neue rsp. andere Adresse im Programmlauf zugewiesen werden.

Einer Zeigervariablen schon.

char c; /* -128 bis +127 */
char *pc; /* Zeigervariable auf ein char Zeichen */
char yc[10]; /* Array mit 9 + 1 Elementen bei Verwendung als C String, sonst 10 Elemente. keine Überlaufprüfung ! */

Dynamische Anforderung von Speicher:

pc= malloc(10); /* 10 Bytes anfordern und die Anfangsadresse dieses 10 Byte großen Speicherblocks der Variablen pc zuweisen, pc sollte tunlichst als char *pc; deklariert sein. Alles andere ist unsaubere Programmierung. */

void *pv;

pv= pc;

Umtypisieren von Daten oder Zeigern:

int i;
char c;

i= (int) c; oder
i= c;

int *pi;
char *pc;

pi= (int *)pc; /* Vorsicht ! Dies ist bereits unsaubere Programmierung, und nur erlaubt, wenn man ein zweites (bzw. 3 weitere) Byte(s) hinter *pc (=dem Zeichen auf das die Adresse, die pc speichert, verweist) vorrätig hält.

Portabilität:

Zeichensatz (Umfang und Sortierreihenfolge)
Wertebereich von Datentypen
Reihenfolge der Stackargumente bei Funktionsaufrufen
Big vs. Little Endian (Lowbyte vor Highbyte und umgekehrt)
Interface Schnittstellen (Hüllfunktionen) zur Korrektur bzw. Anpassung von inkompatiblen Daten

~
kikakater ist offline   Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:21 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag