/**************************************************************/ /* */ /* UNIX 1 / WS 92/93 Gruppe ux803 */ /* 4. Uebung - Aufgabe 1 */ /* */ /* Vorname Name Matrikelnr. */ /* --------- ------- ------------- */ /* Dietmar Dierks 125761 */ /* Roman Czyborra 127221 */ /* Torsten Buller 117894 */ /* Gerasimos Paliatsaras 140956 */ /* */ /**************************************************************/ a) "Hello, world\n" enthaelt 2*5 Buchstaben, 1 Komma, 1 Space, 1 Newline und das abschliessende 1 Nullbyte, also wird der String in 14 Bytes abgelegt. Der Pointer hw auf den String braucht nicht nur aufgrund der Variablen- deklaration im Programmcode abgelegt werden, belegt dort also keine extra Bytes, sondern nur in der Symboltabelle fuer die Uebersetzung. b) char hw[] hat genau die gleiche Bedeutung wie char *hw, also 14 Bytes. c) Eine extern deklarierte Groesse kann nicht initialisiert werden: 0. d) Eine register Deklaration kann nur fuer lokale Variablen erfolgen und ist nur eine Empfehlung, die nur befolgt werden muss, wenn es moeglich ist. Der String wird nicht im Prozessorregister gespeichert werden koennen, daher sind schon einmal 14 Bytes belegt. Unter Umstaenden wird der Pointer auf hw in einem 4-Byte-Register gespeichert. e) 1 Zeichen belegt genau 1 Byte f) 1 Preprozessorkonstante belegt nur Bytes im Programmtext aber wird dann in den Programmtext eingefuegt, also auch hier gilt, durch die blosse Deklaration wird der Code nicht laenger.