next up previous contents
Nächste Seite: 2 Zahlen: Berechnung und Aufwärts: C-Programmierung Vorherige Seite: Inhalt   Inhalt

Unterabschnitte

1 Unser erstes C-Programm

1.1 Umgang mit XWPE: Kochrezept

  1	/* erstes.c */
  2	
  3	#include <stdio.h>
  4	#include <stdlib.h>
  5	
  6	main()
  7	{
  8	   printf("Dies ist mein erstes Programm\n");
  9	   exit(0);
 10	}
 11

1.2 Edit-Compile-Execute: Was ist passiert?

  1. Editieren = Text schreiben = Planung, letzter Teil, Datei erstes.c

  2. Compilieren = Umsetzen der Planung in eine fertige Gestalt

    1. Präprozessor: erstes.c nach erstes.i
      gcc -E -P erstes.c > erstes.i ergibt das rohe C-Programm:
        1	
        2	...
        3	extern int fprintf (FILE *__restrict __stream,
        4			    __const char *__restrict __format, ...)  ;
        5	extern int printf (__const char *__restrict __format, ...)  ;
        6	extern int sprintf (char *__restrict __s,
        7			    __const char *__restrict __format, ...)  ;
        8	...
        9	
       10	main()
       11	{
       12	   printf("Dies ist mein erstes Programm\n");
       13	   exit(0);
       14	}
       15
      

    2. Eigentlicher C-Compiler: erstes.i nach erstes.s
      gcc -S erstes.c ergibt das Programm in Assembler-Sprache:
        1		.file	"erstes.c"
        2		.version	"01.01"
        3	gcc2_compiled.:
        4	.section	.rodata
        5		.align 32
        6	.LC0:
        7		.string	"Dies ist mein erstes Programm\n"
        8	.text
        9		.align 16
       10	.globl main
       11		.type	 main,@function
       12	main:
       13		pushl %ebp
       14		movl %esp,%ebp
       15		subl $8,%esp
       16		addl $-12,%esp
       17		pushl $.LC0
       18		call printf
       19		addl $16,%esp
       20		addl $-12,%esp
       21		pushl $0
       22		call exit
       23		addl $16,%esp
       24		.p2align 4,,7
       25	.L2:
       26		movl %ebp,%esp
       27		popl %ebp
       28		ret
       29	.Lfe1:
       30		.size	 main,.Lfe1-main
       31		.ident	"GCC: (GNU) 2.95.2 19991024 (release)"
      

    3. Assembler: erstes.s nach erstes.o - ergibt das Programm in Maschinensprache - fertig für den Prozessor.

    4. Linker: erstes.o nach a.out - Es werden noch einige wichtige Bausteine an das Programm angebunden.

  3. Ausführen = Benutzung des Programms

1.3 Aufbau und Funktion - Zeile für Zeile

\includegraphics{kap_xwpe/struktogramm_sequenz.eps}


next up previous contents
Nächste Seite: 2 Zahlen: Berechnung und Aufwärts: C-Programmierung Vorherige Seite: Inhalt   Inhalt
Joerg Kurrek 2004-04-02