Links
Kodierungsstil
Am besten entscheidet man sich beim Programmieren Lernen gleich für einen gängigen Stil fürs Einrücken und Anordnen der Befehle. Torsten benutzt den Linux/K&R-Stil.
- Linux kernel coding style / Kernighan and Ritchie
- GNU Coding Standards
- GNU Coding Standards - Kapitel über C
Anleitungen
- Brian Gough: An Introduction to GCC
Brian C. Ballard: The Quick Access C (Achtung: enthält ein paar Fehler! Wie wäre es mit einer fehlerbereinigten deutschen Übersetzung?
- Programmierkurs C
Matt Welsh, Matthias Kalle Dalheimer und Lar Kaufmann: Linux - Wegweiser zur Installation & Konfiguration
- Kapitel 13: Programmiersprachen - Programmieren mit gcc
- Kapitel 14: Werkzeuge für Programmierer - Debuggen mit gdb
- Programmieren in C
- C-Link-Sammlung
- GNU C Library (oft schon als manpages installiert)
Probleme & Lösungen
Datentypen: Wieso sind die negativen Werte bei printf 4 Byte groß?
Negative Werte werden binär als Zweierkomplement ( siehe: http://de.wikipedia.org/wiki/Zweierkomplement ) gespeichert. Dies ist notwendig um binär subtrahieren zu können. Dazu werden alle Bits invertiert (1=>0, 0=>1) und zu dem Ergebnis binär 1 addiert. Für diesen Vorgang steht wohl ein 4-Byte-Speicher (integer) zur Verfügung, auch wenn char eigentlich nur ein Byte bräuchte.
#include <stdio.h> #define MYCONSTANT "Dies ist eine Konstante." int main(int argc, char *argv[ ]) { printf("%s\n\n", MYCONSTANT); printf("char: Hex Dez\n"); char c = -128; do { printf("%x %d\n", c, c); c++; } while (c > -128); printf("\n\nshort int: Hex Dez\n"); short int i = 32760; do { printf("%x %d\n", i, i); i++; } while (i < -32760 || i > 32760); return 0; } // vim: set et sw=8 tw=8 :