Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: [C] Deklarationen und Definitionen erkennen

  Alt 2. Jul 2007, 05:54
Code:
const int i = 4;
Das ist eine Variablendeklaration und keine Konstantendeklaration. C kennt namelich gar keine Konstanten. "const" bedeutet das man den Wert der Variablen nicht aendern kann.
Code:
const char *a = "abcd";
char * const b = "efgh";
const char * const c = "ijkl"
Alles drei sind Variablendeklarationen. Bei a ist der Zeiger konstant, daher kann man den Zeiger nicht umsetzen. Die Daten auf die der Zeiger zeigt kann man hingegen veraendern. Bei b ist es umgekehrt. der Zeiger laesst sich veraendern, aber die Daten auf die er zeigt nicht. Bei c geht keines von beiden.

Es gibt in C noch das gegensaetzliche Keyword volatile. Es besagt das die Variable sich ausserhalb des Einflussbereiches des Programms aendern kann. Der Compiler darf daher keine Optimierungen vornehmen.
Dies fuehrt zum Prunkstueck der C-Deklarationen:
Code:
extern const volatile unsigned int * const volatile clock = 0xEEDFADE;
extern = Variable ist in einem anderen File definiert. Dies ist die Deklaration.
const = man kann den Zeiger nicht aendern.
volatile = der Zeiger aendert sich von alleine (unwahrscheinlich das es so etwas gibt, aber warum nicht).
unsigned int = Cardinal.
const = man kann die Uhr nicht stellen.
volatile = die Uhrzeit aendrt sich von alleine.
0xEEDFADE = irgendwohin muss der Zeiger zeigen. Hier nur eine Beispielinitialisierung.

[edit=Matze][c]-Tag repariert. MfG, Matze[/edit]
  Mit Zitat antworten Zitat