Zum Inhalt springen

Turbo C

aus Wikipedia, der freien Enzyklopädie
Turbo C/C++

[[Datei:Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.|150px]]
Datei:Borland Turbo C++ 3.0.png
Hallo-Welt-Programm und Compiler-Einstellungen von Turbo C++ 3.0
Basisdaten

Maintainer Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Entwickler Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Erscheinungsjahr Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Aktuelle Version 2006
Aktuelle Vorabversion Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
(Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.)
Betriebssystem Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Programmier­sprache Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Kategorie Compiler
Lizenz proprietär
www.turboexplorer.com (offline)

Turbo C (später Turbo C++) ist eine integrierte Entwicklungsumgebung (IDE) der Firma Borland für die Programmiersprache C bzw. C++.

Geschichte[Bearbeiten]

Vorlage:Hinweisbaustein

Nachdem Borland mit Turbo Pascal großen Erfolg hatte und sich die Sprache zum Quasi-Standard für die PC-Anwendungsprogrammierung entwickelt hatte, brachte das Unternehmen drei weitere Entwicklungssysteme heraus, die dem Konzept von Turbo Pascal folgten: Turbo Basic, Turbo Prolog und 1987 Turbo C.

Turbo C bot die gleichen Funktionen wie Turbo Pascal: Eine integrierte Entwicklungsumgebung (IDE), einen Compiler und einen Editor. Dennoch wurde Turbo C nicht so erfolgreich wie das Pascal-Schwesterprodukt. C war keine Schulsprache wie Pascal, sondern eher eine Sprache für Professionelle Entwicklung und Systemprogrammierung. Turbo C betrat somit auf der Seite der Profis einen schon mit Entwicklungswerkzeugen gut besetzten Markt (Microsoft C, Lattice C, Watcom C usw.). Auf der anderen Seite war Turbo C für Amateure und Anfänger nicht so interessant, da diese lieber einfache Sprachen lernen und benutzen wollten.

Dass sich Turbo C trotzdem seine Gemeinde eroberte, lag u. a. an der Geschwindigkeit des kompilierten Codes, der Tatsache, dass damit auch 1987 schon umfangreiche Projekte realisiert werden konnten, und am im Vergleich zu den konkurrierenden Compilern sehr niedrigen Preis.

Von Anfang an spaltete sich das Produkt (wie auch später bei Pascal) in zwei Linien, eine für Einsteiger und eine für fortgeschrittene Nutzer. Anfangs hießen diese „Turbo“ und „Turbo Professional“, später einfach nur noch „Turbo“ und „Borland“. Sie entwickelten Turbo C++ bis 1996 in diesen beiden Linien weiter bis zur Version Turbo C++ 3.0 und Borland C++ 5.0. Wie bei Turbo Pascal gibt es auch ein Turbo C++ für Windows (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.), das international die Version 4.5 und in Japan 5.0 erreichte.<ref name="TC_31_Verpackung">[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] (JPG; 430 KB) In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2022-10-15; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden., Verpackung von Turbo C++ 3.1).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="TC_50J_Verpackung">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. (JPG; 204 KB) In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.; ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden., Verpackung von Turbo C++ 5.0J).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>

Von Turbo C für den Atari ST gab es nur die Versionen 1.0, 1.1 und 2.0. Das Programm wurde von Borland nicht weiter gepflegt, sondern die Quelltexte wurden verkauft und das Produkt dann unter dem Namen Pure C noch einige Zeit weiterentwickelt.

1994 erschien die erste Vorabversion von Delphi, einer neu entwickelten integrierten Entwicklungsumgebung und Sammlung von Entwicklungswerkzeugen. Ab 1996 wurde auch das C++-Werkzeug in Delphi integriert. C++Builder 1.0 ist der direkte Nachfolger von Borland C++ 5.02.<ref name="Sonnentag2016">Vorlage:Heise online</ref>

Anfang 2000 wurden Turbo C 2.01 und Turbo C++ 1.01 von Borland für den Privatgebrauch kostenlos zum Download angeboten.<ref name="BC_20841">David Intersimone: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2000-03-04; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="TC_21751">David Intersimone: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2000-05-10; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> Im September 2006 veröffentlichte Borland jeweils eine kostenpflichtige Professional- und eine kostenlose Explorer-Version von Turbo C++, Turbo C#, Turbo Delphi und Turbo Delphi for .NET.<ref name="Turbo_Explorer">[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2006-08-20; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref>[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2006-08-21; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>

Funktionen nach Version[Bearbeiten]

Jahr Version Anmerkungen
1987 Turbo C 1.0 Bis 1994 besitzt Turbo C bzw. Turbo C++ eine textbasierte Benutzeroberfläche (TUI).
  • Unterstützung des damaligen Entwurfs des ANSI-C-Standards, wobei die 1978 veröffentlichte Definition „The C Programming Language“ von Brian W. Kernighan und Dennis Ritchie vollständig unterstützt wird.<ref name="TC_User_Guide_1_ANSI">Der BibISBN-Eintrag [[Vorlage:BibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden.]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen [[[:Vorlage:Neuer Abschnitt/URL]] <span title="Vorlage:bibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden. (Seite nicht vorhanden)">neuen Eintrag] an.</ref>
  • Unterstützung von sechs Modellen zur Segmentierung des Speichers im Real Mode.<ref name="TC_User_Guide_2" />
  • Unterstützung von Mixed-Model und Mixed-Language-Programmierung (z. B.: Inline-Assembler oder das Linken von Turbo-Pascal Objekten).
1987 Turbo C 1.1
1988 Turbo C 1.5 Neue Funktionen:<ref name="TC_User_Guide_1_5">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>
  • Neue Video-Funktionen
  • Fehlerbeseitigung und Erweiterung von Funktionen aus den mitgelieferten Standard-Bibliotheken
  • Erweiterung der IDE (u. a. Anpassung der Tastenkombinationen)
1989 Turbo C 2.0 Neue Funktionen:<ref name="TC_User_Guide_2">Der BibISBN-Eintrag [[Vorlage:BibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden.]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen [[[:Vorlage:Neuer Abschnitt/URL]] <span title="Vorlage:bibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden. (Seite nicht vorhanden)">neuen Eintrag] an.</ref><ref name="BC_20841" /><ref name="BC_20841_Bild">[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] (JPG; 281 KB) Pull out all the stopsSkriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2000-08-28; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden., Werbeanzeige für Turbo C 2.0).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="DrDobbs_Vergleich_1">Scott Robert Ladd: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.; ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="DrDobbs_Vergleich_2">Scott Robert Ladd: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.; ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
  • integrierter Debugger
  • schnellerer Compiler und Linker (20–30 %)
  • <syntaxhighlight lang="C++" inline>signal</syntaxhighlight> und <syntaxhighlight lang="C++" inline>raise</syntaxhighlight> Funktion
  • Integration von Maschinencode während des Kompiliervorgangs.
  • erweiterte BGI-Grafikbibliothek.
  • Erzeugung von COM-Dateien im Tiny-Speichermodell.
  • <syntaxhighlight lang="C++" inline>long double</syntaxhighlight> Datentyp
  • in der IDE integrierte Online-Hilfe für C-Sprachfunktionen<ref name="CP_Nguyen">Minh Danh Nguyen: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.; ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
  • Unterstützung von Breakpoints in der IDE.<ref name="CP_Nguyen" />

Die Professional Edition enthielt als Bundle zusätzlich die Produkte Turbo Assembler (TASM) 1.0 und Turbo Debugger 1.5.<ref name="BC_20841" /><ref name="BC_20841_Bild" />

1989 Turbo C 2.01
1990 Turbo C++ 1.0 Umstieg auf C++ und damit die Möglichkeit zur objektorientierten Programmierung (OOP).

Neue Funktionen:<ref name="CPP_User_Guide_1">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref><ref name="TC_CPP1_README">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>

  • MDI-Oberfläche für die Entwicklungsumgebung (Turbo Vision)
    • Rudimentäre Funktion eines zeitgenössischen Texteditors (Ausschneiden, Kopieren, Einfügen, Suchen, Ersetzen, Go-To-Line etc.) werden im Hauptmenü der TUI angeboten. Zuvor war dies nur durch Tastenkombinationen möglich.<ref name="TC_2_Ref">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>
    • Mausunterstützung
    • Zusammenhängende Textbereiche können mit der Maus oder über die Pfeiltasten mit gedrückter Umschalttaste markiert werden. In früheren Versionen musste der Beginn und das Ende eines Auswahlbereichs getrennt über Tastenkombinationen festgelegt werden.<ref name="TC_2_Ref" />
  • Vollständige Unterstützung des AT&T C++ 2.0 Standards
  • ANSI C Unterstützung
  • Neue Compiler-Option -V, die den Umgang mit virtuellen Methoden-Tabellen (VMT) regelt
  • VROOMM (Virtual Runtime Object-Oriented Memory Manager)
  • Neue Funktionen zur Speicherverwaltung
  • Neue mathematische Funktionen
  • Erweiterung der Online-Hilfe um Sprachelemente von C++ mit kurzen Beispielen für C und C++ Schlüsselworte, Funktionen und Operatoren.<ref name="CP_Nguyen" />
  • Optional: eine umfangreiche Sammlung an Code-Beispielen.

Ab Turbo C++ 1.0 wird der Protected Mode verwendet, weswegen als Prozessor mindestens ein 80286 erforderlich ist. Es können aber immer noch Binaries für den 8088 erzeugt werden.<ref name="CP_Nguyen" /> Die Professional Edition enthielt neben Turbo Assembler 2.0 und Turbo Debugger 2.0 auch noch das Profiler-Werkzeug Turbo Profiler 1.0.

1991 Turbo C++ 1.01
1992 Turbo C++ 3.0 Neue Funktionen:<ref name="CPP_User_Guide_3">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref><ref name="TC_CPP3_README">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>
1992 Turbo C++ 3.1 Umstellung der IDE auf eine grafische Benutzeroberfläche (GUI) für Windows.

Neue Funktionen:<ref name="TC_31_Verpackung" />

1993 Turbo C++ 4.0 Neue Funktionen:
1994 Turbo C++ 4.5 Neue Funktionen:<ref name="CPP_Quick_Guide_45">[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 1996-12-21; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="CPP_Shipping_45">[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Upgrade Combines Learning Tools with Latest C++ TechnologiesSkriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 1996-12-21; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="TC_CPP45_README">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>
  • Unterstützung von Visual Basic Extensions (VBX)
  • Object Components Framework (OCF) – eine Kapselung der Object Linking and Embedding (OLE) 2.0 Funktionalitäten
  • Object Windows Library (OWL) 2.5
  • Unterstützung von ANSI C++ Runtime Type Information (RTTI)
  • ANSI C++ Typumwandlung: <syntaxhighlight lang="C++" inline>dynamic_cast</syntaxhighlight>, <syntaxhighlight lang="C++" inline>static_cast</syntaxhighlight>, <syntaxhighlight lang="C++" inline>const_cast</syntaxhighlight> und <syntaxhighlight lang="C++" inline>reinterpret_cast</syntaxhighlight>
  • Diverse Verbesserungen der IDE
1996 Turbo C++ 5.0J Erschien nur in Japan und war eine im Funktionsumfang reduzierte Version von Borland C++ 5.0 (das weltweit vertrieben wurde).

Neue Funktionen:<ref name="TC_50J_Verpackung" /><ref name="TC_CPP5_README">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>

2006 Turbo C++
Professional &
Explorer
2006
Funktionen:<ref name="Turbo_Explorer_CPP">[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2006-10-10; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref><ref name="Turbo_Explorer_CPP_FAQ">John Kaster: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Borland International, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2006-10-08; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>

Nur in der Professional-Version:

  • Reporteditor und -Komponenten
  • Remote Debugger
  • Erstellung und Nutzung eigener Komponenten
  • ActiveX- und COM-Funktionen

Erweiterte Funktionen[Bearbeiten]

Speichermodelle[Bearbeiten]

Bereits seit der ersten Version werden sechs Speichermodelle unterstützt.<ref name="TC_User_Guide_1">Der BibISBN-Eintrag [[Vorlage:BibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden.]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen [[[:Vorlage:Neuer Abschnitt/URL]] <span title="Vorlage:bibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden. (Seite nicht vorhanden)">neuen Eintrag] an.</ref><ref name="TC_Help_Model_Options">Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref> Diese legen fest, wie der Speicher im Real Mode von x86-Prozessoren segmentiert werden soll. Insgesamt gibt es vier Segmentregister: Code-Segment (CS), Data-Segment (DS), Stack-Segment (SS) und Extra-Segment (ES). Dabei existieren zwei Modi zur Adressierung der einzelnen Speicheradressen. Im Near-Modus wird nur der Offset angegeben, und das Segment wird einem Register entnommen. Eine Speicheradresse hat dabei eine Länge von 16-Bit. Im Far-Modus werden sowohl das Segment als auch der Offset angegeben. Eine Speicheradresse besteht dabei aus einem 16-Bit-Segment und einem 16-Bit-Offset, also insgesamt 32-Bit.<ref name="TC_User_Guide_1_Near_Far">Der BibISBN-Eintrag [[Vorlage:BibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden.]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen [[[:Vorlage:Neuer Abschnitt/URL]] <span title="Vorlage:bibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden. (Seite nicht vorhanden)">neuen Eintrag] an.</ref><ref name="FHM_Near_Far_Pointer">Rainer Thomas: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Near und Far-Zeiger in TURBO/BORLAND-CSkriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2022-10-11;.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>

Speichermodelle<ref name="TC_User_Guide_1" /><ref name="TC_Help_Model_Options" />
Speicher­modell Segmente Zeiger Beschreibung
Code Data Stack Code Data
Tiny 64 KiB Near Near Das Tiny-Modell eignet sich, wenn der Speicherplatz sehr begrenzt ist und Programme möglichst klein ausfallen müssen.

Alle vier Segmentregister (CS, DS, SS und ES) werden auf die gleiche Speicheradresse gesetzt. Für Code, Daten und Stack stehen insgesamt nur 64 KiB zur Verfügung. Es werden immer Near-Zeiger verwendet. Programme, die das Tiny-Modell nutzen, können als COM-Datei bereitgestellt werden.

Small 64 KiB 64 KiB Near Near Das Small-Modell eignet sich für Anwendungen mit durchschnittlicher Größe. Es handelt sich um die Standardeinstellung unter Turbo C.

Die Code- und Datensegmente sind verschieden und überlappen sich nicht. Es stehen 64 KiB für Code und 64 KiB für Daten und Stack zur Verfügung. Daten-, Stack- und Extra-Segment beginnen an der gleichen Speicheradresse. Es werden immer Near-Zeiger verwendet.

Medium 1 MiB 64 KiB Far Near Das Medium-Modell ist am besten für große Programme geeignet, die nicht viele Daten im Speicher halten.

Far-Zeiger werden für den Code, aber nicht für die Daten verwendet. Das Resultat ist, dass Daten und Stack zusammen auf 64 KiB begrenzt sind, aber der Code bis zu 1 MiB belegen kann.

Compact 64 KiB 1 MiB Near Far Das Compact-Modell eignet sich, wenn der Code klein ist, aber eine große Menge an Daten adressiert werden muss. Es ist das Gegenteil des Medium-Modells.

Far-Zeiger werden für Daten aber nicht für den Code benutzt. Der Code wird auf 64 KiB begrenzt, während die Daten einen Bereich von 1 MiB haben. Per Voreinstellung sind alle Funktionen und alle Datenzeiger Far.

Large 1 MiB 1 MiB Far Far Das Large-Modell eignet sich nur für große Anwendungen.

Far-Zeiger werden sowohl für den Code als auch für die Daten verwendet und geben beiden einen Bereich von 1 MiB. Alle Funktionen und Datenzeiger sind per Voreinstellung Far.

Huge 1 MiB 64 KiB
jedes
Sgt.
64 KiB Far Far Das Huge-Modell eignet sich nur für sehr große Anwendungen.

Far-Zeiger werden sowohl für den Code als auch für die Daten verwendet. Turbo C begrenzt normalerweise die Größe aller Daten auf 64 KiB. Das Speichermodell Huge hebt diese Beschränkung auf und erlaubt Daten, mehr als 64 KiB einzunehmen. Das Huge-Modell erlaubt mehrere 64 KiB große Datensegmente, bis zu 1 MiB für Code und 64 KiB für den Stack. Alle Funktionen und Datenzeiger werden als Far vorausgesetzt.

Die zentralen Bibliotheken wurden in Turbo C für jedes Speichermodell gesondert implementiert. Je nachdem welches Speichermodell für den Kompiliervorgang ausgewählt wurde, werden die dazu passenden Bibliotheken automatisch eingebunden, wobei x den Wert T (Tiny), S (Small), M (Medium), C (Compact), L (Large) oder H (Huge) annehmen kann:

  • COx.OBI: Start-Code (Grundlegender Rumpf einer Anwendung)
  • Cx.LIB: Standardfunktionen (Datei- und Speicherverwaltung)
  • MATHx.LIB: Mathematische Funktionen (math.h)

(Inline-)Assembler[Bearbeiten]

Ebenfalls unterstützt Turbo C bereits ab der ersten Version das Einbinden von kompilierten Bibliotheken und zeilenweise Inline-Assemblerfragmente durch voranstellen des Schlüsselwortes _asm.<ref name="TC_User_Guide_ASM">Der BibISBN-Eintrag [[Vorlage:BibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden.]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen [[[:Vorlage:Neuer Abschnitt/URL]] <span title="Vorlage:bibISBN/Skriptfehler: Ein solches Modul „URIutil“ ist nicht vorhanden. (Seite nicht vorhanden)">neuen Eintrag] an.</ref> Eine Möglichkeit mehrere Assemblerbefehle als Block einzubinden, besteht nicht.<ref name="DrDobbs_Vergleich_1" />

Literatur[Bearbeiten]

  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

<references />

  1. Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.

Vorlage:HinweisbausteinVorlage:Wikidata-Registrierung