C/Napisy - własna implementacja: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
brak opisu edycji
m (Wycofano edycje użytkownika 94.40.74.200 (dyskusja). Autor przywróconej wersji to 77.253.20.204.)
Nie podano opisu zmian
 
===Typ danych===
Typ zdefiniujemy jako [[C/Wskaźniki - więcej#Do czego można użyć wskaźników na funkcje?|klasę]].
<sourcesyntaxhighlight lang="c">
typedef struct _string
{
struct _string *next;
} *string;
</syntaxhighlight>
</source>
Zauważmy, że łańcuch automatycznie oznaczamy jako wskaźnik. W ten sposób zabezpieczamy się przed kopiowaniem.
 
===Metody===
Na początek zajmiemy się wypisywaniem łańcucha:
<sourcesyntaxhighlight lang="c">
typedef struct _string
{
fputc(strum, wsk->c); /* wypisz znak */
}
</syntaxhighlight>
</source>
Teraz zajmijmy się przypisaniem:
<sourcesyntaxhighlight lang="c">
typedef struct _string
{ char c;
}
}
</syntaxhighlight>
</source>
 
Dla uproszczenia zapisu skorzystaliśmy z konstruktora klasy <tt>string</tt>. Tego jeszcze nie mamy, więc czas na niego:
<sourcesyntaxhighlight lang="c">
/* konstruktor */
string create_string(const char *initial)
*s = NULL; /* zerujemy wskaźnik */
}
</syntaxhighlight>
</source>
 
=== Porównywanie ===
<sourcesyntaxhighlight lang="c">
char porownaj_str(string porownywany)
{
return is_equal;
}
</syntaxhighlight>
</source>
 
===Konwersje===
===Użycie===
Możemy teraz wypróbować naszą implementację:
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
/* bibliotekę należy zapisać jako napisy.h */
return 0;
}
</syntaxhighlight>
</source>

Menu nawigacyjne