Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Delphi <> C unterschiede

Empfohlene Antworten

hi leute,

wir programmieren bei uns in der schule zurzeit mit delphi.

ich hab jetzt zu weihnachten einen asuro roboter (link) geschenkt bekommen.

soviel ich weiß wird der mit c programiert.

kann mir jmd. von euch kurz die grundlegenden unterschiede zwischen delphi und c erklären?

und was ist denn der vorteil von c?

Hier mal das, was wikipedia dazu sagt:

Unterschiede zu C [bearbeiten]

* keine Nullterminierten Strings – Standard Pascal hatte zwar String-Literale aber keinen Typ string (s. oben). In einigen späteren Versionen werden Strings nicht durch ein Null-Byte terminiert, sondern es wird die Länge des Strings im ersten Character String[0]) gespeichert und über die Funktion length(<Bezeichner>) abgefragt. Somit beginnt das erste Nutzzeichen bei String[1]. Da in vielen Implementierungen (z. B. Turbo Pascal) für die Speicherung der Stringlänge nur ein Byte vorgesehen war, ist die Länge auf 255 Zeichen begrenzt. Diese Einschränkung galt als die markanteste überhaupt. Im Extended Pascal Standard wurden Strings als Scheme-Typ definiert. Auch hier muss die Kapazität angegeben werden, sie wird aber in runde Klammern geschrieben und es gibt kein formales Limit: String(10240).

* strikte Trennung zwischen Funktionen und Prozeduren – Pascal trennt strikt zwischen einer Funktion (Rückgabewert) und einer Prozedur (kein Rückgabewert, Typ void in C). Eine Funktion darf nicht als Prozedur aufgerufen werden – d. h. der Rückgabewert muss stets entgegen genommen werden.

* parameterlose Funktionen/Prozeduren – Verfügt eine Prozedur/Funktion über keine Parameter, so darf beim Aufruf dieser keine Leerklammer () gesetzt werden.

* Deklarationen – Variablen und Typdefinitionen dürfen nicht innerhalb der Implementierung einer Funktion/Prozedur (zwischen BEGIN und END) deklariert werden – dies muss in einem speziellen Block im Definitionsteil geschehen. Anders als C erlaubt Pascal die Deklarationen von lokalen Funktionen/Prozeduren.

* Namen – In Pascal ist die Groß-/Kleinschreibung bei Namen (Typen, Konstanten, Variablen, Funktionen/Prozeduren) irrelevant.

* Blockmarkierungen – Pascal verwendet zur Kennzeichnung von Blöcken die Schlüsselwörter BEGIN und END statt { und } wie in C.

* Semikolon – Das Semikolon wird nicht wie in C als Befehls-Abschluss interpretiert, sondern als Trennzeichen zwischen Bezeichnern. Vor einem END oder UNTIL kann es somit weg gelassen werden. Vor einem ELSE darf es i. d. R. gar nicht stehen, da sonst der IF-Zweig als abgeschlossen angesehen werden würde. Ein Fall, wo es vor dem ELSE steht (und stehen muss), ist am Ende einer CASE-Auflistung.

* Delimiter – Für String-Literale und Character-Literale wird das selbe Begrenzungszeichen (Delimiter), nämlich der Apostroph verwendet

* Zuweisungen – Zuweisungen an Variablen werden durch die Sequenz := definiert, das Gleichheitszeichen allein dient nur dem Vergleich.

* Operatoren – Pascal verwendet die Operatoren and, or, not, div (nur für Integer, bei Real ist es /), mod und <> anstatt der C Operatoren &&, ||, !, /, % und !=. Die „Shortcut“-Funktionalität von && und || in C (wenn beim and der linke Teil FALSE ist, wird der rechte nicht mehr ausgewertet) schloss N. Wirth explizit aus (Die Reihenfolge der Auswertung von Expressions obliegt dem Compiler). In Standard Pascal gibt es keine Bitoperationen für INTEGER (wie &, |, ^ und ~ von C), aber stattdessen den Typ set of (mit den Operatoren *, + und - für Durchschnitt, Vereinigung und Mengendifferenz).

* strenge Typentrennung – u. a. ist CHAR nicht austauschbar mit INTEGER, die Umwandlung muss mit den Funktionen ORD() und CHR() durchgeführt werden. Explizite Typumwandlungen, sog. type casts wurden erst mit Turbo Pascal eingeführt. In Standard Pascal musste dafür ein Umweg über Variantenrecords (union in C) genommen werden.

Bis auf den letzten Punkt mit den "type casts", paßt das auch auf Delphi.

C wird eher bei hardware-nahen Sachen verwendet.

  • 2 Wochen später...
  • 1 Jahr später...

hi zusammen

auch ich hab den asuro geschenkt gekriegt und arbeite in der schule mit delphi

am liebsten wärs mir wenn ich asuro mit pascal programmieren könnte.

gibt es da eine möglichkeit?

Danke

Ich glaub ich werd mich dann doch an c gewöhnen.

Bei der Erstellung einer hex-datei tritt jetzt aber bei mir ein fehler auf. Ich hatte beim notepad die tools make und clean eingerichtet, wenn ich aber nun test.c mit make convertieren will, so heißt es unten

asuro.d: Permission denied

cc1.exe: Invalid argument: when writing output to

make: *** [asuro.d] Error 1.

die Anleitung scherzt da nur das beim beispielprogramm kein fehler auftritt

könnt ihr mir sagen wie sich der fehler beheben liesse?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.