AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

switch, break, case c++

Ein Thema von EWeiss · begonnen am 27. Aug 2017 · letzter Beitrag vom 28. Aug 2017
Antwort Antwort
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#1

AW: switch, break, case c++

  Alt 27. Aug 2017, 11:57
dein Code war/ist schlicht uneinheitlich, mal ist das "break" vom "case" eingerückt und mal nicht !?
Kein Formatierer wird das so machen, aber wenn du schon "if,for,switch" so klammerst und einrückst, dann ist dies die resultierende logische Einrückung für das "break" zum "case" BEI DIR.

=> Wenn du mit AutoFormat arbeiten möchtest, dann setze bei Klammerverwendung das "break" in die Klammern, nur dann ist die Struktur optisch und syntaktisch auch bzgl. Scope einheitlich.

Code:
switch(x)
{   
    case 1:
        y=x+1;
        break;

    case 2:
    {
        y=x+2;
        break;
    }

    default:
        y=-1;
}
Angehängte Grafiken
Dateityp: jpg ew7.jpg (84,0 KB, 4x aufgerufen)
Dateityp: jpg ew8.jpg (101,6 KB, 3x aufgerufen)
Dateityp: jpg ew9.jpg (97,5 KB, 3x aufgerufen)
Dateityp: jpg ew10.jpg (78,6 KB, 4x aufgerufen)
Dateityp: png ew11.png (39,9 KB, 1x aufgerufen)

Geändert von mensch72 (27. Aug 2017 um 12:21 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: switch, break, case c++

  Alt 27. Aug 2017, 12:12
Zitat:
dein Code war/ist schlicht uneinheitlich, mal ist das "break" vom "case" eingerückt und mal nicht !?
JO.. Und das wollte ich nur sagen weil du mich darauf hingewiesen hast das ich es tun sollte.
Nur ich kann den Formatierer nicht dazwischen funken wenn er es nicht macht.

Ich versuche immer den Code Formatiert zu halten.

gruss
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#3

AW: switch, break, case c++

  Alt 27. Aug 2017, 12:36
Achtung Syntaxfehler:

"WCHAR * Buffer[5];" soll/muss zu 99,9% "WCHAR Buffer[5]" heißen!

Du willst ja sicher 4Zeichen + abschließende "NULL" darin speichern(LB_GETTEXT)... dazu brauchst du ein eigentlich "ArrayOfWChar" und kein "ArrayOfWCharPointers"... das es funktioniert liegt daran, 5 Pointer zufällig mehr Speicher reservieren wie du für 5Zeichen brauchst und du dann irgendwie auch noch passend einen "cast" machst.

Denke mal drüber nach und versuche zu verstehen, warum es obwohl falsch doch in diesem Fall so funktioniert...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: switch, break, case c++

  Alt 27. Aug 2017, 12:51
Zitat:
Denke mal drüber nach und versuche zu verstehen, warum es obwohl falsch doch in diesem Fall so funktioniert...
Kann ich dir nicht sagen warum das trotzdem funktioniert.

aber da wir schon dabei sind.
Ist es überhaupt nötig ein Default: Case im switch (wpItem) bei WM_COMMAND zu verwenden?

sollte eigentlich am ende der WinProc reichen.

gruss
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#5

AW: switch, break, case c++

  Alt 27. Aug 2017, 13:05
ja das "default" im "wpItem" ist notwendig, weil das andere "default" von da aus nicht mehr erreicht werden kann.

Lass bei "*BUFF[5]" bitte trotzdem mal das Sternchen weg und ändere das auf "BUFF[5]".

Als allgemeiner guter Tip für C Anfänger bei über 95% der "normalen" Variablen Definition:
- (Char,...) Arrayvariablen, also TYPE x[size] werden fast immer ohne * definiert ! (also immer zuerst ohne versuchen und möglichst verstehen warum es (nicht) geht)
- mit Sternchen "TYPE* x[size]" oder als "PTYPE x[size]" was dann ein ArrayOfTypePointers entspricht arbeiten auch Pointerfanatiker in C/C++ nur wirklich selten und es kommt z.B. bei WINAPI kaum vor... (hier ist es im aktuellen Fall schwerer zu verstehen warum es obwohl falsch doch wegen genug Speicherreservierung doch geht)

Geändert von mensch72 (27. Aug 2017 um 15:02 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: switch, break, case c++

  Alt 27. Aug 2017, 13:14
Zitat:
ja das "default" im "wpItem" ist notwendig, weil das andere "default" von da aus nicht mehr erreicht werden kann.
Lass bei "*BUFF[5]" bitte trotzdem mal das Sternchen weg und ändere das auf "BUFF[5]".
Danke für deine Hilfe
Habe es gemacht und kompiliert ohne Probleme.

gruss
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#7

AW: switch, break, case c++

  Alt 27. Aug 2017, 14:57
keine Ursache

im Gegensatz zu dir beschäftige mich mit grafischer oder hier solcher Detailarbeit eigentlich im Alltag garnicht mehr. Ich bin da selbst schon echt zu faul dafür geworden.
Obwohl für mein erstes großes C-Style WinApi 16Bit-Programm was damit jetzt sogar 64Bit fähig würde... da würde ich am liebsten mal wirklich die alten 16Bit WinApi(v3.11) Quelltexte von 1994..1998 hervorsuchen und das "1:1 mal fix" von 16Bit hoch auf 64Bit portieren... einzig bin ich nicht mehr bei der damaligen Firma und nur für NiceToHave ist mir meine Zeit eben dann wohl doch zu schade

Aber ev. kann auch von dir was noch lernen... wenn du magst schicke mir ne PM(du hast die PM-Empfangsfunktion selbst ja deaktivert)...
"Meinen Quelltext der DLL SK_AERO gibt es NUR auf persönlicher Anfrage. Das Teil ist nicht geheim, aber habe einiges an Zeit dafür investiert"

Egal ob Delphi,C,API,SDK oder was auch immer, ich lese gerne in fremden Quelltexten und meckere wenn dann nur sachlich begründet einzelne mir aufgefallene Details "nett" an

Geändert von mensch72 (27. Aug 2017 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz