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.
Speichermodell | 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
- Dietmar Herrmann: Effektiv Programmieren in C. Vieweg, Wiesbaden 1989, ISBN 978-3-528-04655-2, doi:10.1007/978-3-322-83933-6.
- Thomas Kregeloh: Die Microsoft Programmer’s Workbench: Arbeiten mit dem Microsoft C/C++ PDS 7.0. Vieweg, Wiesbaden 1992, ISBN 978-3-528-05189-1, doi:10.1007/978-3-322-84245-9.
Einzelnachweise
- ↑ 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]).
- ↑ Additional Global Options. Programmer’s WorkBench. In: Microsoft C/C++ 7.0 Hilfe (CL.HLP). 1992 (englisch).
- ↑ 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).
- ↑ 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).
- ↑ Processor-Specific Instructions. C/C++ Compiler. In: Microsoft C/C++ 7.0 Hilfe (CL.HLP). 1992 (englisch).
- ↑ 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).
- ↑ 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]).
- ↑ List of the version history of Microsoft Foundation Classes DLLs. KB196831. In: support.microsoft.com. Microsoft, 21. November 2006, archiviert vom am 2. Mai 2007; abgerufen am 13. Oktober 2023 (englisch).
- ↑ 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).
- ↑ Malcolm Smith: A visual history of Visual C++. In: malsmith.net. 4. März 2017, abgerufen am 9. August 2023 (englisch).
- ↑ 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).