AGB  ·  Datenschutz  ·  Impressum  







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

Labels in C

Ein Thema von Horst0815 · begonnen am 11. Mai 2016 · letzter Beitrag vom 11. Mai 2016
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Labels in C

  Alt 11. Mai 2016, 12:25
Versteh ich nicht. Labels in C verhalten sich genau wie Labels in Delphi. Labels haben keine Ausdehnung sondern geben einen Punkt im Programm an. Wenn ein Label angesprungen wird, dann lässt das Programm sozusagen alles stehen und liegen und der Programmfluss geht nach dem Label weiter. Vielleicht ist dein Missverständnis hier: Goto heißt nicht, dass nur die Zeile nach dem Label ausgeführt wird, sondern auch die Zeile danach, die Zeile danach usw. (solange kein weiterer Sprungbefehl kommt). Es wird nie zurückgekehrt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.746 Beiträge
 
Delphi 12 Athens
 
#2

AW: Labels in C

  Alt 11. Mai 2016, 12:38
Result ist nicht immer initialisiert.
return 0; ist kein Exit; , sondern Result:=0; Exit; oder Exit(0); .

Dann würde ich kein GOTO mehr verwenden, sondern eine Schleife (For/While/Repeat).

Namenloser hat es schon gesagt: GOTO hat kein Ende ... hat nur einen Anfang, nicht so wie https://en.wikipedia.org/wiki/GOSUB .


Und memchr ist auch falsch, denn XE ist Unicode und da drin wird mit Ansi gerechnet.

Ähhh, wo ist fsih definiert?
Und wieso ist das DWORD, wo doch memchr einen Pointer zurück gibt?

Ich würde ja PChar verwenden und die Pointer-Arithmetik ausnutzen, damit "richtig" gerechnet wird. (bei Unicode jeweils 2 Byte)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Mai 2016 um 13:21 Uhr)
  Mit Zitat antworten Zitat
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#3

AW: Labels in C

  Alt 11. Mai 2016, 13:15
ja wollt ich jetzt auch mit while Schleife umstellen

hatte gehofft das nur die nachfolgende Zeile zählt

Delphi-Quellcode:
 A: SendMessage(hWin0, WM_SETTEXT, 0, smsg); // Wyœwietlenie informacji o b³êdzie
 hIcon = LoadIcon(0, IDI_ERROR); // Wczytanie ikony b³êdu systemu Windows
SendMessage(hWin3, STM_SETIMAGE, 1, hIcon); // Wyœwietlenie wczytanej ikony
break;}
fsil = GetFileSize(hFile, &fsih);
if(fsih) // Rozmiar pliku >4294967295 bajtów
B: {sprintf(smsg, "\nWrong size of file.\nOnly 256/512kB Kickstarts are supported.");
C: CloseHandle(hFile); // Zamkniêcie otwartego pliku
goto A;}
Rufen sich die Labels hier nicht gegenseitig auf das endet doch im loop (Goto: A)

Edit : Break übersehen



Delphi-Quellcode:
HICON hIcon;
HFONT hFont;
HANDLE hFile;
HBRUSH hbLis;
OFSTRUCT ofs;
HINSTANCE hInst;
OPENFILENAME ofn;
signed char mpri[44];
LPSTR mBuf, tBuf, tpos, madr[44], mend[44];
char mnam[44][33] = {""}, mver[44][70] = {""};
int csel, mnum, scrx, scry, winx = 455, winy = 480; // szerokoœæ, wysokoœæ g³ównego okna programu
DWORD hCol, fsih, fsil, ftmp, base, skip, ksum, ktmp;
HWND hWnd, hBut0, hBut1, hBut2, hBut3, hBut4, hBut5, hBut6, hLis0, hWin0, hWin1, hWin2, hWin3, hTemp;



Edit: Code Tags funktionieren doch

Geändert von Horst0815 (11. Mai 2016 um 13:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.746 Beiträge
 
Delphi 12 Athens
 
#4

AW: Labels in C

  Alt 11. Mai 2016, 13:26
Ich meinte mehr "das ist eine lokale Variable, aber lokal seh ich da nichts, in dem Delphi-Code".

und doch?
Code:
das ist ein Block
Code:
if (true) {
  print ('und das sogar in C');
}
PHP-Quellcode:
if (true) {
  print ('nee o_O , C ist nicht formatiert, aber wenigstens PHP ... sieht genauso abgeschweift aus');
}
Ein Therapeut entspricht 1024 Gigapeut.
  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 02:18 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