Title, Topic

C Referenz (Page 2).doc

®
Page 2 of 2
[1] [2]
Faculty
Information Science
Discipline
Information Technology / Computer Science
Document category
Summary
University, School
Fachhochschule Kempten - FH
Additional information
Responsible User
This text has been add by user asim737 on 2009-07-05. Disclaimer
Popularity
748  visits
Document length
~2.024  Words
~13.048  Chars
Rating
Networking




















More documents
Information Technology / Computer Science

Logiksimulator
/** * Beschreiben Sie hier die Klasse Nand. * * Nand ist eine Klasse, die ein Gatter erzeugt welches spezifiziert wird durch beliebig viele Eingänge und einen * Ausgang. Sie wird dadurch in de

d.     while- und do-Anweisung

o   allg. Form:

while (expression)
{
statements;
}

do

{
statements;
}
while (expression);

o   statement wird solange ausgeführt, solange Wert von expression ungleich Null (true)

e.     continue- und break-Anweisung

Ø  continue

o   beendet innerhalb for-, while-, do-Anw. akt. Schleifendurchlauf u. verzweigt zum nächsten Durchlauf

o   allg. Form:

continue;

Ø  break

o   beendet for-, while-, do-, switch-Anw. vorzeitig u. verzweigt zu next_statement

o   -allg. Form:

break;

4.     Funktionen

a.      Funktionsdeklaration und Funktionsdefinition

o   allg. Form:
Typ Rückgabewert (optional) à void ohne return value
Typ u. Parametername (optional) à void ohne parameter

o   Beispiel: Aufbau C-Programm:

#include < . . . >
#define . . .
/* Funktionsdekl. */
void int_ports (void);
unsigned short int read_sensors (char val1, char val2, unsigned char3);

/* Funktion main */
void main(void)
{

char count1, count2;
unsigned char count3;
unsigned short int act_pos;

act_pos = read_sensors (count1, count2, count3); /* Funktionsaufruf /*
act_pos = int_ports ();
}

/* Funktionsdef. */

void int_ports (void)
{
Anweisungen
}
unsigned short int read_sensors (char val1, char val2, unsigned char val3)
{
Anweisungen
}

b.     Übergabe von Argumenten und Rückgabewerten

o   Call by value:
Argument-Übergabe erfolgt als Wert

o   Return-Anweisung:
return (expression); à return (variable);
Rückgabe Wert von expression an aufrufende Funktion.

This paragraph has been concealed!
Download the complete document for free!
C Referenz.doc
• Click on download to get complete and readable text
• This is a free of charge document sharing network
• First upload your own document, and you get a word document per email
• No registration necessary, gratis
Swap homeworks and notes at no charge!
Gratis scripts for students and pupils!

c.      Gültigkeitsbereich und Lebensdauer von Variablen

o   lokale Variable:
- wird nach Blockanfang def. und gilt bis Blockende
- aktueller Wert geht von einem Funktionsaufruf zum nächsten verloren

o   globale Variable: à z.B.: unsigend short int global_control;
- wird außerhalb aller Funktionen eines Moduls def.
- gilt bis zum Modul-Ende
- akt. Wert bleibt bis zur nächsten Zuweisung erhalten

o   externe Variable u. externe Funktion:
-Variable oder Funktion kann modulübergreifend verwendet werden, wenn sie im Modul x außerhalb von allen Funktionen definiert u. im Modul y mittels extern deklariert werden.
- ext.

Variable ist immer verfügbar
- extern-Dekl. von Variablen u. Funktionen oft innerh. Include file
Modul 1

extern void read_frequ(void);
extern unsigned char counter;
double max_frequ = 0;
void main(void)
{
..
read_frequ();
..
if ( max_frequ >= ..)
..
if (counter == ..)
..
}

Modul 2

extern double max_frequ;
unsigned char counter = 1;
void read_frequ(void)
{
..
max_frequ = ..
counter = ..
..
}

o   Static-Variable u. static-Funktion:
- Gültigkeitsbereich auf Block beschränkt, in dem Variable def. wurde
- Lebensdauer bleibt über gesamten Programmablauf erhalten

void write_lcd (..)
{
static unsigned short int cursor_pos = 0;
..
cursor_pos = ..
..
}

This paragraph has been concealed!
Download the complete document for free!
C Referenz.doc
• Click on download to get complete and readable text
• This is a free of charge document sharing network
• First upload your own document, and you get a word document per email
• No registration necessary, gratis
Swap homeworks and notes at no charge!
Gratis scripts for students and pupils!

5.     Pointers und Vektoren

a.      Pointers

o   unsigned char *byte_ptr;
- Pointer zeigt nur auf den in Def. festgelegten Datentyp

o   Adress-Operator: &

float &act_temp ; // erste Adresse der float variable wird angezeigt
(float 4 bytes groß)

unsigned &char out_byte; // Adresse der char variable wird angezeigt

liefert in Verbindung mit einem Variablennamen die Adresse der Variablen

o   inhalts-Operator: *
liefert angewandt auf einen Pointer, das Objekt auf das der Pointer zeigt (Wert der Variable wird angezeigt, auf die der Pointer zeigt)

*byte_ptr; // initialisierung des pointers byte_ptr (4 bytes groß)
unsigned char byte1 = 21; // initialisierung der variable byte1
byte_ptr = &byte1; // Adresse von byte1 wird in byte_ptr geschrieben
byte_ptr*; // Inhalt von Variable byte1 wird angezeigt

b.     Argument – Übergabe an Funktionen

o   Call by reference

void swap (unsigned char *byte_p1, unsigned char *byte_p2);
main()
{
unsigned char high_byte, low_byte;
swap (&high_byte, &low_byte); /*byte swap*/
}
void swap (unsigned char *byte_p1, unsigned char *byte_p2)
{
unsigned char temp;
temp = *byte_p1;
*byte_p1 = *byte_p2;
*byte_p2 = temp;
}

- korrekter Tausch von high_byte, low_byte in main
-wird Name eines Vektors als Argument an Fkt. übergeben, erhält Fkt. Adresse des Vektors

c.      Vektoren

o   allg. Form: à typ vektor_name [elemente_anzahl];

This paragraph has been concealed!
Download the complete document for free!
C Referenz.doc
• Click on download to get complete and readable text
• This is a free of charge document sharing network
• First upload your own document, and you get a word document per email
• No registration necessary, gratis
Swap homeworks and notes at no charge!
Gratis scripts for students and pupils!

d.     Zusammenhang zwischen Pointer und Vektor

buff_ptr=&buffer[0]; // 1 Adresse vom Vektor buffer wird in buff_ptr geschrieben
buff_ptr=&buffer[3]; // 4 Adresse vom Vektor buffer wird in buff_ptr geschrieben
buff_ptr=buffer;
buff_ptr=buffer+3; // gleicher aber besserer code als oben
value=buffer[3]; // Inhalt vom Vektor buffer wird in value geschrieben
value=*(buffer+3); // gleicher code (erst Klammer dann Inhaltsoperator)

e.     Pointer-Arithmetik

a) Zuweisung auf Pointer

-Pinter kann mit Pointer gleichen Typs oder mit ganzz. Ausdruck initial. warden

unsigned char *count_p1, **count_pp; //** Pointer der auf Pointer zeigt
port1_p = (unsigned char *) 0x00F00000;
count_pp = &count_p1; //count_pp erhält Adresse auf die count_p1 zeigt
++**count_pp; // ++(*(*count_pp))

b)     Addition, Subtraktion int-Wert zu Pointer

-zu Pointer kann int-Wert addiert/subtrahiert werden

number = *++rec_p; //Adresse um 1 erhöht und dann Wert zugewiesen
number = *(rec_p+2); // Adresse um 2 erhöht und dann Wert zugewiesen

c.) Subtraktion von Pointers

-Pointers können voneinander subtrahiert werden, wenn sie auf Elemtente des gleichen Vektors zeigen.

This paragraph has been concealed!
Download the complete document for free!
C Referenz.doc
• Click on download to get complete and readable text
• This is a free of charge document sharing network
• First upload your own document, and you get a word document per email
• No registration necessary, gratis
Swap homeworks and notes at no charge!
Gratis scripts for students and pupils!

d.) Vergleich von Pointers

-Pointers können miteinander verglichen warden, wenn sie auf Elemtente des gleichen Vektors zeigen

unsigend short int i, j, *start_p, *end_p, out_buff[2000];
start_p = out_buff + i;
end_p = out_buff + j;
if (start_p > end_p )
{ /*error handling */ }

6.     Strukturen Datentypen

o   Struktur: Zusammenfassung von Variablen unterscheidl. oder gleichen Typs unter gemeinsamen. Namen

typdef struct
{
unsigend char day;
unsigend char info [3];
} MESSAGE_STRUCT;

MESSAGE_STRUCT short_message;
short_message.day = 5;
short_message.info[ 0 ] = `M`;

//oder
MESSAGE_STRUCT short_message = {20, “abc”};

o   - Struktur kann andere Struktur als Komponente enthalten

typedef struct
{
MESSAGE_STRUCT time;
float startTemp;
float endTemp;
} TEMP_MEAS;

TEMP_MEAS motorTemp;
meas_hour = motorTemp.time.day;

o   Vektoren von Strukturen

typedef struct
{
unsigned short int nr;
unsigned char art[4];
} MESS_STRUCT;

MESS_STRUCT messung[20];

o   Struktur kann anderer Struktur zugewiesen werden, wenn diese vom Gleichen Typ ist

MESS_STRUCT mess1, mess2;
mess2 = mess1;

o   Pointers auf Strukturen

- für Pointers auf Strukturen gilt Pointer-Arithmetik

unsigned short int mess_nummer;
MESS_STRUCT *messung_p;
messung_p=&mess_1;

mess_nummer=(*messung_p).nr;

 

vereinfachte Schreibweise für Zugriff auf Strukturkomponenten mittels Pointer

messung_p=&mess_1;
mess_nummer=(*messung_p).nr;

mess_nummer= messing_p -> nr; // mess_nummer=mess_1[0].nr

This paragraph has been concealed!
Download the complete document for free!
C Referenz.doc
• Click on download to get complete and readable text
• This is a free of charge document sharing network
• First upload your own document, and you get a word document per email
• No registration necessary, gratis
Swap homeworks and notes at no charge!
Gratis scripts for students and pupils!

o   Union: Variable, die zu unterschiedlichen Zeitpunkten Objekte mit verschiedenen Datentypen und Größen enthält.
- Speicher für größten Datentyp wird reserviert àhier double. Bei neuer Wertzuweisung wird Speicherbereich überschrieben

typdef union
{
unsigned char control_byte;
unsigned short int number;
double temp;
} TRANS_BUFF;

TRANS_BUFF transmit_buffer, *buff_p;
buff_p = &transmit_buffer;
buff_p -> control_byte = c_byte;
buff_p -> number = act_nr;
buff_p -> temp = act_temp;

a.      Bit-Felder

o   Menge nebeneinander liegender Bits innerhalb eines Worts

typedef struct //max 16 Bit da U_INT16
{
U_INT16 direction : 1; // 1 Bit groß
U_INT16 speed : 4; // 4 Bit groß
} CTRL_PORT;

CTRL_PORT *ctrl_port_p = (CTRL_PORT *) 0x00F0600;
ctrl_port_p -> direction = FORWARD;
ctrl_speed_p -> speed = SLOW;


Page 2 of 2
[1] [2]


swopdoc.com ist not responsible for the content of this text provided by third parties

Legal info - Copyright - Terms - Partner - Statistik - Contact
antiblock.org adblockdetector.com

Swap your documents