Laufzeitwerte in C (Laufzeitwerte in C), Lektion, Seite 722977
https://www.purl.org/stefan_ram/pub/laufzeitwerte_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Laufzeitwerte in C 

Das folgende Programm gibt eine mehr oder weniger zufällig ausgewählte int-Zahl zwischen »0« (einschließlich) und <stdlib.h> »RAND_MAX« (einschließlich) aus.

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%d\n", rand() ); }

stdout
41

Die zur Laufzeit stattfindende Auswertung  eines Funktionsaufrufs ist ein Vorgang  (Geschehen, Ablauf), während der Funktionsaufrufausdruck  ein Teil des Quelltextes  ist.

Am Vorgang der Auswertung des Ausdrucks

rand()

ist noch besonders zu bemerken, daß es sich zwar um eine eindeutig bestimmte Funktion  handelt, ihr Wert  aber nicht  bestimmt ist. Er kann bei jeder Ausführung der Funktion ein anderer sein. (Das heißt: Die Auswertung dieses Ausdrucks kann jedes Mal einen anderen Wert ergeben.)

Es ist möglich, daß ein Programm wie das obige immer dasselbe ausgibt (wie beispielsweise »41«), aber wir werden später sehen, wie man die Funktion »rand« so aufrufen kann, daß sich auch andere Werte ergeben können. Daher kann man schon sagen, daß ein Aufruf von »rand« eine mehr oder weniger zufällig ausgewählte int-Zahl zwischen »0« (einschließlich) und <stdlib.h> »RAND_MAX« (einschließlich) ausgibt, auch wenn wir erst etwas später erfahren werden, wie man es verhindern kann, daß immer die gleiche Zahl ausgegeben wird.

Hierin unterscheidet sich das Programmieren von der Mathematik, wo ein Term wie ‹cos( 0 )› immer den gleichen Wert hat (also immer einen bereits durch diesen Term  vollständig und eindeutig bestimmten Wert).

Dynamische und statische Eigenschaften

Etwas das zum Laufzeitgeschehen gehört, insbesondere etwas, das erst während des Programmablaufs festgelegt wird, nennt man auch dynamisch.

Etwas das zum Quelltext gehört, insbesondere etwas, das schon durch den Quelltext festgelegt ist, nennt man auch statisch.

Der Typ eines Ausdrucks  ist statisch. Er ist bereits durch den Quelltext festgelegt. Dadurch können Typfehler schon während der Compilierung erkannt und gemeldet werden, so daß ein Programmierer sie erkennen kann, bevor ein Programm an Kunden ausgeliefert wird. Dazu sagt man auch, C  habe ein statisches Typsystem.

Der Wert eines Ausdrucks  hingegen ist dynamisch. Es ist möglich, daß er erst zur Laufzeit festgelegt wird. Dadurch kann ein Programm flexibler an die Umstände während seiner Ausführung angepaßt werden. Andererseits ist es dadurch möglich, daß Fehler, die nur bei bestimmten Werten auftreten, vom Programmierer nicht bemerkt werden, weil dieser nicht alle möglichen Werte durchprobieren kann.

getchar

Die Funktion »getchar« liefert die Kennzahl eines eingegebenen Zeichens. Falls nach dem Start eines Programms noch kein Zeichen eingegeben wurde, wartet das Programm bei der der Auswertung von »getchar()« zunächst auf die Eingabe eines Zeichens, welche in der Regel noch mit der folgenden Betätigung der Eingabetaste bestätigt werden muß.

Die Eingabetaste
.------------------.
| |
| |
| | |
| <----' |
'----. |
| |
| |
| |
| |
| |
| |
| |
'-------------'

Jedes Schriftzeichen hat in einer C -Implementation eine bestimmte Kennzahl, durch welche es eindeutig identifiziert wird, das Schriftzeichen »G« hat beispielsweise bei vielen Implementationen die Kennzahl 71. Die Zuordnung von Schriftzeichen zu Kennzahlen wird aber nicht durch C, sondern durch die Implementation festgelegt. Im folgenden wird zur Vereinfachung manchmal eine Zuordnung von Kennzahlen zu Schriftzeichen gemäß der folgenden Tabelle angenommen.

Tabelle

Zahl Zeichen Beschreibung

10 Zeilenende
13 Wagenruecklauf

48 0 Ziffer 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9

65 A 
66 B 
67 C 
68 D 
69 E 
70 F 
71 G 
72 H 
73 I 
74 J 
75 K 
76 L 
77 M 
78 N 
79 O 
  80 P 
  81 Q 
  82 R 
  83 S 
  84 T 
  85 U 
  86 V 
  87 W 
  88 X 
  89 Y 
  90 Z

  97 a 
  98 b 
  99 c 
 100 d 
 101 e 
 102 f 
 103 g 
 104 h 
 105 i 
 106 j 
 107 k 
 108 l 
 109 m 
 110 n 
 111 o 
 112 p  
 113 q  
 114 r  
 115 s  
 116 t  
 117 u  
 118 v  
 119 w  
 120 x  
 121 y  
 122 z

Das folgende Programm erlaubt es die Kennzahl eines eingegebenen Zeichens auszugeben.

main.c

#include <stdio.h> /* printf, getchar */

int main( void )
{ printf
( "%d\n", getchar() ); }

Konsole
A
65
Konsole
B
66

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722977 stefan_ram:722977 Laufzeitwerte in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722977, slrprddef722977, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/laufzeitwerte_c