Not logged in. · Lost password · Register

King-Chris
Member since Oct 2012
31 posts
Subject: Verschiedene Multiple Choice Fragen
Bin mir zwar ziemlich sicher bei meinen Antworten, würde sie aber gerne trotzdem bestätigt haben :

1. a) Welche der folgenden Aussagen über den C-Präprozessor ist
richtig?
❏Der Präprozessor ist eine Softwarekomponente, welche Java-Klassen durch C-Funktionen ersetzt, die dann von einem C-Compilerübersetzt werden.
❏Der Präprozessor optimiert Makros durch Zeigerarithmetik.
❏Nach dem Übersetzen und dem Binden müssen C-Programme durch den Präprozessor nachbearbeitet werden, um Makros aufzulösen.
❏Die Syntax von Präprozessoranweisungen ist unabhängig vom Rest der Sprache C

Hier müsste 4. richtig sein, Makros werden ja vorher aufgelöst und ich denke mal Makros werden nicht durch Zeigerarithmetik optimiert oder doch ?


Wozu dient das
#ifdef-Konstrukt in C?
❏Es kann alternativ zu if-Abfragen eingesetzt werden.
❏Man kann damit Programmteile bei der Übersetzung ausblenden.
❏Es kann eingesetzt werden, um sicherzustellen, dass ein Programmteil ein definiertes Ergebnis liefert.
❏Es überprüft, ob die danach angegebenen Variablen definiert wurden.

Also 1. und 3. ist sicher falsch. Bei 4. frage ich mich ob mit Variablen auch Makros gemeint sind, wenn ja stimmt ja sicherlich 4. , aber ich glaube in der led.c konnte man damit auch ganze Programmteile ausbleden, bin mir aber nichtmehr sicher, was man da verwenden sollte, aus meiner Abgabe hatte ich es dann ja herausgestrichen, sonst würde ich es nachschauen.


Welche der folgenden Aussagen zum Binden eines Programms ist richtig ?
❏Auf einer Mikrocontroller-Plattform wird normalerweise dynamisch gebunden, weil dies Speicherplatz spart.
❏Der Binder löst #include-Anweisungen in einem C-Programm auf, indem er sie durch den Inhalt der einzubindenden Datei ersetzt.
❏Der Binder fügt Objektdateien und Bibliotheken zu einer ausführbaren Datei zusammen.
❏Beim Binden werden Zugriffe aus einem C-Modul auf globale static-Variableneines anderen C-Moduls optimiert.

Bei 2. und 3. bin ich mir nicht sicher, was von beiden passt. Allerdings müsste die #include-Anweisung ja schon vom Präprozessor ausgeführt werden. Zählt diese denn noch zum Binder ?

3. wird dann wohl stimmen, allerdings ist mir das Wort Bibliothek in diesem Zusammenhang eigentlich unbekannt. Der Linker fügt aber Objektdateien zusammen.
killermiller
Member since May 2011
41 posts
Quote by King-Chris:
Bin mir zwar ziemlich sicher bei meinen Antworten, würde sie aber gerne trotzdem bestätigt haben :

1. a) Welche der folgenden Aussagen über den C-Präprozessor ist
richtig?
❏Der Präprozessor ist eine Softwarekomponente, welche Java-Klassen durch C-Funktionen ersetzt, die dann von einem C-Compilerübersetzt werden.
❏Der Präprozessor optimiert Makros durch Zeigerarithmetik.
❏Nach dem Übersetzen und dem Binden müssen C-Programme durch den Präprozessor nachbearbeitet werden, um Makros aufzulösen.
❏Die Syntax von Präprozessoranweisungen ist unabhängig vom Rest der Sprache C

Hier müsste 4. richtig sein, Makros werden ja vorher aufgelöst und ich denke mal Makros werden nicht durch Zeigerarithmetik optimiert oder doch ?

jap.
Zeigerarithmetik hat nix mit Präprozessor zu tin.
Quote by King-Chris:
Wozu dient das
#ifdef-Konstrukt in C?
❏Es kann alternativ zu if-Abfragen eingesetzt werden.
❏Man kann damit Programmteile bei der Übersetzung ausblenden.
❏Es kann eingesetzt werden, um sicherzustellen, dass ein Programmteil ein definiertes Ergebnis liefert.
❏Es überprüft, ob die danach angegebenen Variablen definiert wurden.

Also 1. und 3. ist sicher falsch. Bei 4. frage ich mich ob mit Variablen auch Makros gemeint sind, wenn ja stimmt ja sicherlich 4. , aber ich glaube in der led.c konnte man damit auch ganze Programmteile ausbleden, bin mir aber nichtmehr sicher, was man da verwenden sollte, aus meiner Abgabe hatte ich es dann ja herausgestrichen, sonst würde ich es nachschauen.
Nö, Variablen sin Variablen und Makros sin Makros, also passt die 2 schon.
Quote by King-Chris:
Welche der folgenden Aussagen zum Binden eines Programms ist richtig ?
❏Auf einer Mikrocontroller-Plattform wird normalerweise dynamisch gebunden, weil dies Speicherplatz spart.
❏Der Binder löst #include-Anweisungen in einem C-Programm auf, indem er sie durch den Inhalt der einzubindenden Datei ersetzt.
❏Der Binder fügt Objektdateien und Bibliotheken zu einer ausführbaren Datei zusammen.
❏Beim Binden werden Zugriffe aus einem C-Modul auf globale static-Variableneines anderen C-Moduls optimiert.

Bei 2. und 3. bin ich mir nicht sicher, was von beiden passt. Allerdings müsste die #include-Anweisung ja schon vom Präprozessor ausgeführt werden. Zählt diese denn noch zum Binder ?

3. wird dann wohl stimmen, allerdings ist mir das Wort Bibliothek in diesem Zusammenhang eigentlich unbekannt. Der Linker fügt aber Objektdateien zusammen.
Präprozessor hat mit Binder nix zu tun.
Erst Präprozessor, dann Compiler, dann Binder :)
Und in der Tat löst der Binder auch Verknüpfungen mit Bibliotheken auf. Bei uns z.B. die Funktionen aus der spicboard. Binder und Linker sind das gleiche.
morty
SPiC-Meister
(Moderator)
Member since May 2011
331 posts
Quote by killermiller:
Binder und Linker sind das gleiche.
Oder eher: Binder ist die deutsche Übersetzung....
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Special characters:
Go to forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen