Microsoft C

Programmiersprache und Compiler von Microsoft für C und C++
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 29. Mai 2024 um 10:06 Uhr durch Aka (Diskussion | Beiträge) (Geschichte: Auslassungspunkte). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Microsoft C/C++ ist ein Compiler für die Programmiersprachen C und C++ auf Basis von Lattice C.[1] Es ist möglich, zwischen reinem ANSI C und den Spracherweiterungen von Microsoft zu wählen.[2] Die letzte Version des Compilers stellt den Vorgänger von Microsoft Visual C++ 1.0 Professional dar. Die Standard-Edition von Visual C++ 1.0 basiert hingegen weitestgehend auf Microsoft QuickC.[3]

Microsoft C/C++


Hallo-Welt-Programm und Compiler-Einstellungen von Microsoft C/C++ 7.0
Basisdaten

Entwickler Microsoft
Erscheinungsjahr 1983
Aktuelle Version 7.0
(1992)
Betriebssystem MS-DOS, OS/2
Kategorie Compiler
Lizenz MS-EULA

Geschichte

Die erste Version von Microsoft C war identisch mit Lattice C. Es wurde letztendlich nur das Produkt Lattice C unter einem anderen Namen vertrieben. Auch die zweite Version basierte auf Lattice C. Allerdings wurden die verfügbaren Speichermodelle angepasst.

Speichermodelle von Lattice C 2.0[4]
Speicher­modell Segmente Beschreibung
Code Data
Small (S) 64 KiB 64 KiB
Program (P) 1 MiB 64 KiB
Data (D) 64 KiB 1 MiB
Large (L) 1 MiB 1 MiB

Ab Version 3.0 nutzt Microsoft eine eigene Implementierung für den C-Compiler. Die Speichermodelle von Lattice C wurden durch die Intel-x86-Speichermodelle (vgl. Speichermodelle von Turbo C) ersetzt.[1] Diese legen fest, wie der Speicher im Real Mode von x86-Prozessoren segmentiert werden soll.

Es können nur 16-Bit-Anwendungen erstellt werden. Der Compiler unterstützt die Befehlssatzarchitekturen Intel 8086, Intel 80186 und Intel 80286. Aus der Dokumentation von Microsoft C++ 7.0 geht hervor, dass auch die 32-Bit-Befehlssatzarchitekturen Intel 80386 und Intel 80486 vorgesehen waren, aber nicht in der Version implementiert wurden. Allerdings wurden entsprechende Kommandozeilenparameter für zukünftige Versionen reserviert.[5]

Im Gegensatz zu den früheren Versionen enthält Microsoft C ab der dritten Version ein vergleichsweise großes SDK.[6] Dabei handelt es sich um die C-Standard-Bibliothek und weitere Header-Dateien. Unter anderem wird auch eine Bibliothek bereitgestellt, mit der die Kompatibilität zu älteren, in Lattice C geschriebenen Programme sichergestellt werden kann.[1]

Ab Version 7.0 unterstützt der Compiler auch C++ und damit die Sprachelemente der objektorientierten Programmierung (z. B. Klassen) und die strukturierte Ausnahmebehandlung. Er ist vollständig mit dem AT&T C++ Standard 2.1 kompatibel, jedoch nur eingeschränkt mit der Version 3.0 oder später.[7] Im Lieferumfang sind zudem das Windows 3.1 SDK und die erste Version der Microsoft Foundation Classes (MFC) als statische Bibliothek enthalten.[8] Es ist damit möglich, komplexe grafische Benutzeroberflächen mit Fenstern, Dialogen, Steuerelementen, Object Linking and Embedding (OLE) und Multiple Document Interfaces (MDI) zu erstellen. Ab dieser Version können erstmals 32-Bit-Anwendungen erstellt werden, die im Protected Mode von x86-Prozessoren lauffähig sind. Im Gegensatz zu den meisten anderen C Compilern aus der damaligen Zeit, unterstützte der Compiler von Microsoft auch p-Code.[7]

Die erste Version von Visual C++ unterstützte ebenfalls nur 16-Bit-Architekturen und wurde im Februar 1993 veröffentlicht. Im August 1993 erschien eine Version, die auch in der Lage war, 32-Bit-Anwendungen zu erstellen. Ab der Version 2.0 von Visual C++ wurden nur noch 32-Bit-Anwendungen unterstützt.[9][10]

Neben Microsoft C/C++ wurde auch eine vereinfachte Version namens Microsoft QuickC entwickelt. Die Standard-Edition von Visual C++ 1.0 basierte auf QuickC, während die Professional-Edition auf Microsoft C/C++ 7.0 basiert.[3] Die letzte Version von QuickC (Microsoft QuickC for Windows 1.0) ist kompatibel mit dem Compiler von Microsoft C 6.0.[11]

Beispiel

Der Compiler ist kompatibel mit ANSI C und K&R C. Ein einfaches Hallo-Welt-Programm könnte daher folgendermaßen aussehen:

#include <stdio.h>

int main(void)
{
  printf("Hallo Welt!\n");
  return 0;
}

Literatur

Einzelnachweise

  1. a b c Steve Leibson et al.: Expert team analyzes 21 C compilers. In: Computer Language. Band 2, Nr. 2. CL Publications, Februar 1985, ISSN 0749-2839, S. 73–103 (englisch, archive.org [PDF; 59,4 MB; abgerufen am 24. August 2022]).
  2. Additional Global Options. Programmer’s WorkBench. In: Microsoft C/C++ 7.0 Hilfe (CL.HLP). 1992 (englisch).
  3. a b Kelley Damore: Visual C++ adds Windows support. In: InfoWorld. Band 15, Nr. 8. Popular Computing Inc., 22. Februar 1993, ISSN 0199-6649, S. 17 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
  4. Lattice Inc. (Hrsg.): Lattice 8086/8088 C Compiler: Manual Supplement for Version 2.00 of Compiler. Lifeboat Associates, New York 1982, Major New Features, S. 5 f. (englisch).
  5. Processor-Specific Instructions. C/C++ Compiler. In: Microsoft C/C++ 7.0 Hilfe (CL.HLP). 1992 (englisch).
  6. Nabajyoti Barkakati: The Waite Group’s Microsoft C Bible. 2. Auflage. Sams, Carmel 1990, ISBN 0-672-22736-3, S. vii (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
  7. a b Richard Hale Shaw: Microsoft C/C++ 7.0: Catching Up to Borland In the Compiler Race. In: Ziff Davis (Hrsg.): PC Magazine. Band 11, Nr. 11, 16. Juni 1992, ISSN 0888-8507, S. 54 (englisch, eingeschränkte Vorschau in der Google-Buchsuche [abgerufen am 11. Oktober 2023]).
  8. List of the version history of Microsoft Foundation Classes DLLs. KB196831. In: support.microsoft.com. Microsoft, 21. November 2006, archiviert vom Original am 2. Mai 2007; abgerufen am 13. Oktober 2023 (englisch).
  9. Kelley Damore: Microsoft set to prerelease 32-bit Visual C++. In: InfoWorld. Band 15, Nr. 29. Popular Computing Inc., 19. Juli 1993, ISSN 0199-6649, S. 12 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
  10. Malcolm Smith: A visual history of Visual C++. In: malsmith.net. 4. März 2017, abgerufen am 9. August 2023 (englisch).
  11. Stuart J. Johnston: Microsoft Readies QuickC for Windows for July Introduction. In: InfoWorld. Band 13, Nr. 19. Popular Computing Inc., 13. Mai 1991, ISSN 0199-6649, S. 113 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).