Wie schreibe ich eine „Dummy“-Zeile (nichts tun) in C?

Lesezeit: 4 Minuten

Gibt es eine spezielle Möglichkeit, eine Dummy-Zeile in C zu schreiben? (eine Art, wie pass in Python) Wenn Sie sich fragen, warum ich nicht einfach eine Leerzeile lasse, brauche ich etwas, an das ich einen Xcode-Haltepunkt anhängen kann – wenn dort nichts ist, springt der Haltepunkt zur nächsten Zeile!! Bisher habe ich es verwendet sleep(0) für diesen Zweck. Ich habe mich gefragt, ob es einen besseren/effizienteren/offizielleren Weg gibt, dies zu erreichen.

Oh, und ich verwende Objective-C. Wenn also in Obj-C etwas hinzugefügt wurde, das diesem Zweck entspricht, können Sie es gerne hinzufügen.

  • Das ist die ac#-Anweisung …

    – ElGavilan

    8. März 2014 um 2:46

  • Warum müssen Sie überhaupt einen Xcode-Haltepunkt in einer leeren Zeile erstellen?

    – Eliza Wilson

    8. März 2014 um 2:46

Enrico Susatyos Benutzeravatar
Enrico Susatyo

Setzen Sie ein Semikolon. Es funktioniert in C und Obj-C (sowie Java, Swift und vielen anderen Sprachen).

;

  • Ich dachte, das würde funktionieren, aber das Setzen eines Haltepunkts in dieser Zeile führt dazu, dass XCode in der nächsten Zeile stoppt.

    – Merlevede

    8. März 2014 um 3:02

sleep(0) funktioniert, ebenso wie eine Null-Anweisung (nur ein Semikolon). ; in einer einzelnen Zeile) und die Anweisung i+1;

Die Compileroptimierung führt normalerweise dazu, dass für diese Anweisungen kein Maschinencode generiert wird.

  • sleep(0) erfordert ein #include und dieses #include ist betriebssystemabhängig, oder? Der ; Lösung klingt besser

    – Warum was

    12. Juni 2022 um 20:50 Uhr

Fügen Sie eine triviale Aufgabe hinzu

var = var;

  • Das ist nicht ganz trivial.

    – nhgrif

    11. März 2014 um 0:18

  • Ich verstehe das Schlüsselwort nicht var in C.

    – Warum was

    12. Juni 2022 um 20:51

  • @WhyWhat sie verwenden es nur als Beispiel, ersetzen Sie eine beliebige Variable in Ihrem Programm

    – Patronik

    12. Okt. 2022 um 4:12

Benutzer-Avatar von felixphew
felixphew

Die meisten der bereits geposteten Antworten erfüllen Ihre Wünsche. Wenn Sie jedoch einen Block benötigen, versuchen Sie es mit einer Klammer:

{}

Und wenn Sie eine tatsächliche Anweisung benötigen, die eigentlich nichts tut und dennoch die Kompilierung übersteht, dann kann eine kleine Inline-Assembly den Zweck erfüllen:

asm("nop");

Technisch gesehen ist dies nicht tragbar; aber die nop Unterricht besteht im Grunde Jeder Befehlssatz, den Sie benennen möchten. Wird garantiert* auch nicht auskompiliert!

Setzen Sie den Haltepunkt einfach in die erste Zeile, die nicht ausgeführt werden soll. Der Haltepunkt stoppt die Ausführung, bevor der Code in dieser Zeile ausgeführt wird.


Ohne eine „falsche“ Zeile zu erstellen:

    someMethod();
    // empty line
BREAKPOINT
    someOtherMethod();

Mit der Erstellung einer „falschen“ Zeile:

    someMethod();
BREAKPOINT
    ;
    someOtherMethod();

Beides führt zum exakt gleichen Ergebnis. Der Haltepunkt stoppt an derselben Stelle.

  • Das ist das Problem – der Code legt eine Variable auf einen bestimmten Typ fest, damit ich sie im Debugger sehen kann, aber in der nächsten Zeile fällt sie aus dem Gültigkeitsbereich – wie es sollte, ich habe sie nur zum Debuggen drin.

    – PopKernel

    8. März 2014 um 2:48


  • @PopKernel Liegt das daran, dass Sie für Ihre if/loop keine geschweiften Klammern verwendet haben? Sie können den Haltepunkt auf der schließenden Klammer festlegen.

    – Enrico Susatyo

    8. März 2014 um 2:49

  • Verschieben Sie dann den Haltepunkt eine Zeile nach oben. Wenn Sie schrittweise vorgehen, wird eine Zeile angezeigt, nachdem die Variable festgelegt wurde und bevor sie den Gültigkeitsbereich verlässt.

    – nhgrif

    8. März 2014 um 2:50

Piotr Siupas Benutzeravatar
Piotr Siupa

Die gute alte (void)0 Sollte es tun.

(void)0;

(void) weist den Compiler an, die folgende Zahl einfach zu ignorieren 0.

  • Das ist das Problem – der Code legt eine Variable auf einen bestimmten Typ fest, damit ich sie im Debugger sehen kann, aber in der nächsten Zeile fällt sie aus dem Gültigkeitsbereich – wie es sollte, ich habe sie nur zum Debuggen drin.

    – PopKernel

    8. März 2014 um 2:48


  • @PopKernel Liegt das daran, dass Sie für Ihre if/loop keine geschweiften Klammern verwendet haben? Sie können den Haltepunkt auf der schließenden Klammer festlegen.

    – Enrico Susatyo

    8. März 2014 um 2:49

  • Verschieben Sie dann den Haltepunkt eine Zeile nach oben. Wenn Sie schrittweise vorgehen, wird eine Zeile angezeigt, nachdem die Variable festgelegt wurde und bevor sie den Gültigkeitsbereich verlässt.

    – nhgrif

    8. März 2014 um 2:50

qulinxaos Benutzeravatar
qulinxao

Platzieren Sie einfach diese Konstante:

0xDEBAF;

  • Bitte erläutern Sie Ihre Antwort. Jetzt ist es nicht sehr hilfreich.

    – Stefan

    30. April 2021 um 6:53


  • Stefan ist nur eine Ausdruckszahl im Hexadezimalformat mit der Ansicht als normales englisches Wort wie 0xdeadbeef en.wikipedia.org/wiki/Hexspeak

    – qulinxao

    1. Mai 2021 um 12:39 Uhr


1452940cookie-checkWie schreibe ich eine „Dummy“-Zeile (nichts tun) in C?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy