Microsoft C

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

Microsoft C/C++ ist ein Compiler für die Programmiersprachen C und C++ auf Basis von Lattice C und ist ANSI C und K&R C kompatibel.[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]

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.[1]

Speichermodelle von Lattice C 2.0[4][5]
Speicher­modell Segmente Zeiger Beschreibung
Code Data Code Data
Small (S) 64 KiB 64 KiB Near Near Entspricht dem Small-Modell im x86-Standard
Program (P) 1 MiB 64 KiB Far Near Entspricht dem Medium-Modell im x86-Standard
Data (D) 64 KiB 1 MiB Near Far Entspricht dem Compact-Modell im x86-Standard
Large (L) 1 MiB 1 MiB Far Far Entspricht dem Large-Modell im x86-Standard

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. Darüber hinaus wird ab dieser Version Mixed-Model Programming unterstützt.[6][7] Programme, die das Tiny-Speichermodell nutzen, können auch als COM-Datei erzeugt werden. Allerdings können diese Programme dann keinen Return Code zurückliefern.[8] Standardmäßig wird das Small-Modell genutzt und eine EXE-Datei erzeugt.[9]

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.[10]

Im Gegensatz zu den früheren Versionen enthält Microsoft C ab der dritten Version ein vergleichsweise großes SDK.[11] 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.[6][12][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.[13] Im Lieferumfang sind zudem das Windows 3.1 SDK und die erste Version der Microsoft Foundation Classes (MFC) als statische Bibliothek enthalten.[14] 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.[13]

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.[15][16]

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.[17]

Durch Microsofts Freigabe und Veröffentlichung des Quellcodes von MS-DOS 4.0 am 25. April 2024 ist der Microsoft C Compiler in der Version 5.10 mitsamt dessen Linker LINK.EXE (Version 3.65) und NMAKE.EXE (Version 1.00.05), sowie der dazugehörigen C-Bibliothek und dem Microsoft Assembler MASM (Version 5.10) als Binärcode öffentlich auf GitHub verfügbar.[18][19]

Entwicklungsumgebung

Seit Version 6.0 wird neben dem Compiler auch die zeichenorientierte Entwicklungsumgebung Programmer’s WorkBench (PWB) mitgeliefert. Unter anderem ermöglicht die Entwicklungsumgebung die Kombination von Programmfragmenten, die in unterschiedlichen Programmiersprachen entwickelt wurden (Mixed-Language Programming).[20] Neben Microsoft C werden die Programmiersprachen Microsoft Macro Assembler (MASM), QuickBASIC, FORTRAN und COBOL unterstützt.[21]

Mixed-Language Programming

Programmfragmente in unterschiedlichen Sprachen werden von unterschiedlichen Compilern in Objektdateien (*.obj) umgewandelt und anschließend mit einem Linker zu einem fertigen Programm zusammengeführt.[22]

Die unterschiedlichen Programmiersprachen nutzen unterschiedliche Ansätze zur Speicherverwaltung und -adressierung. Daher ist es nur möglich, die Speichermodelle Medium, Large und Huge zu nutzen. Die Speichermodelle Small und Compact werden nicht unterstützt und führen zu Schutzverletzungen und letztendlich zum Programmabsturz.[22]

Darüber hinaus unterstützt Microsoft C auch Inline-Assemblerfragmente. Dazu dienen __asm-Böcke. Allerdings wird hier nur eine Teilmenge des MASM-Befehlssatzes unterstützt. Das Schlüsselwort asm aus dem AT&T-Standard wird nicht unterstützt.[23]

Kontextsensitive Hilfe

Die Entwicklungsumgebung bietet eine kontextsensitive Hilfe an. Befindet sich der Cursor innerhalb eines Schlüsselwortes oder bekannten Funktion, kann man durch Drücken der F1-Taste oder einem Rechtsklick die Dokumentation für das jeweilige Sprachelement anzeigen lassen.[24]

Beispiel

Das folgende Hallo-Welt-Programm gibt den Text „Hallo Welt!“ im Standard-Ausgabe-Datenstrom (STDOUT) aus.

#include <stdio.h>

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

Literatur

Einzelnachweise

  1. a b c d 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. Lattice Inc. (Hrsg.): Lattice C Manual: Lattice 8086/8088 C Compiler. Supplement to Lattice C v. 2.1. Lifeboat Associates, New York 29. Mai 1984, Memory Addressing Models, S. 4.28–4.34 (englisch, archive.org [PDF; 7,6 MB; abgerufen am 29. Mai 2024] Seiten innerhalb des Sammeldokuments: S. 140–146).
  6. a b Microsoft (Hrsg.): Microsoft C Compiler User’s Guide for the MS-DOS Operating System. 1985, Document Number: 8415L-300-02; Part Number: 048-014-025, S. 148–154, 199–222 (englisch, archive.org [PDF; 252,4 MB; abgerufen am 2. Juni 2024]).
  7. Raymond Chen: A look back at memory models in 16-bit MS-DOS. In: devblogs.microsoft.com. Microsoft, 28. Juli 2020, abgerufen am 1. Juni 2024 (englisch).
  8. Günter Born: MS-DOS-Programmierhandbuch. Markt+Technik, 1993, ISBN 978-3-89090-894-6, S. 126, 518–519 (borncity.com [PDF; 3,0 MB; abgerufen am 19. Februar 2024]).
  9. Small Memory Model: Details. Programmer’s WorkBench. In: Microsoft C/C++ 7.0 Hilfe (CL.HLP). 1992 (englisch): “The small memory model is the default if no other memory model is specified.”
  10. Processor-Specific Instructions. C/C++ Compiler. In: Microsoft C/C++ 7.0 Hilfe (CL.HLP). 1992 (englisch).
  11. 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).
  12. Microsoft (Hrsg.): Microsoft C Run-Time Library Reference for the MS-DOS Operating System. 1985, Document Number: 8417L-300-00; Part Number: 048-014-026, S. 80 (englisch, archive.org [PDF; 135,6 MB; abgerufen am 2. Juni 2024]).
  13. 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]).
  14. 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).
  15. 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).
  16. Malcolm Smith: A visual history of Visual C++. In: malsmith.net. 4. März 2017, abgerufen am 9. August 2023 (englisch).
  17. 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).
  18. Scott Hanselman, Jeff Wilcox: Open sourcing MS-DOS 4.0. In: cloudblogs.microsoft.com. Microsoft, 25. April 2024, abgerufen am 29. Mai 2024 (englisch).
  19. Rich Turner et al.: MS-DOS > v4.0 > src > TOOLS. In: github.com. Microsoft, 25. April 2024, abgerufen am 29. Mai 2024 (englisch, Microsoft C Compiler mitsamt weiterer Tools aber ohne IDE aus der Quellcodeveröffentlichung von MS-DOS 4.0).
  20. Thomas Kregeloh: Die Microsoft Programmer’s Workbench. Arbeiten mit dem Microsoft C/C++ PDS 7.0. 1. Auflage. Vieweg, Braunschweig 1992, ISBN 3-528-05189-2, doi:10.1007/978-3-322-84245-9.
  21. Microsoft Advisor. In: Microsoft C/C++ 7.0 Hilfe (ADVISOR.HLP). 1992 (englisch).
  22. a b Microsoft (Hrsg.): Mixed-Language Programming Guide. 1987, Document No.: 410840031-500-R00-0887, Part No.: 016-014-049, S. xi, 7 f., 15 f. (englisch).
  23. __asm. C/C++ Language. In: Microsoft C/C++ 7.0 Hilfe (CLANG.HLP). 1992 (englisch).
  24. Help on Language Keywords. Microsoft Advisor. In: Microsoft C/C++ 7.0 Hilfe (ADVISOR.HLP). 1992 (englisch).

Read other articles:

Burnett PlazaIntermodalGeneral informationLocationMain Street and Burnett Street, Houston, TexasCoordinates29°46′21″N 95°21′36″W / 29.772432°N 95.359873°W / 29.772432; -95.359873Owned byMetropolitan Transit Authority of Harris County, TexasConnectionsIntercity Bus, Light RailConstructionAccessibleYesKey datesCancelledFebruary 2011Proposed services Preceding station METRORail Following station UH–Downtowntoward Fannin South Red Line Quitman/Near Northside...

 

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Daftar pustaka Agustinus dari Hippo – berita · surat kabar · buku · cendekiawan · JSTOR (September 2013) Santo Agustinus dalam Studinya karya Sandro Botticelli, 1480, Chiesa di Ognissanti, Firenze, Italia. Te...

 

 

Belgian United Nations Command (1950-1955)3rd Paracommando Battalion (1955-1959)3rd Parachute Battalion (1959-)Soldiers from the 3rd Parachute Battalionparade in Kortrijk, 1971.Active1950-Country Belgium Luxembourg (1950-1953)BranchLand ComponentTypeAirborne light infantryRoleAir AssaultSize500Part ofSpecial Operations RegimentGarrison/HQTielenMotto(s)BelgiumEngagementsKorean WarCongo CrisisLebanonWar in AfghanistanInsigniaParachute Qualification BrevetCommando Qualification Br...

Township in the US state of Missouri Township in Missouri, United StatesCenter TownshipTownshipCoordinates: 39°40′57″N 094°51′41″W / 39.68250°N 94.86139°W / 39.68250; -94.86139CountryUnited StatesStateMissouriCountyBuchananArea • Total36.32 sq mi (94.08 km2) • Land36.32 sq mi (94.08 km2) • Water0 sq mi (0 km2)  0%Elevation[1]912 ft (278 m)Population ...

 

 

Iago Aspas Informasi pribadiNama lengkap Iago Aspas Juncal[1]Tanggal lahir 1 Agustus 1987 (umur 36)Tempat lahir Moaña, SpanyolTinggi 1,76 m[2]Posisi bermain PenyerangInformasi klubKlub saat ini CeltaNomor 10Karier junior Moaña1995–2006 Celta2004–2005 → Rápido Bouzas (pinjaman)Karier senior*Tahun Tim Tampil (Gol)2006–2009 Celta B 84 (11)2008–2013 Celta 136 (46)2013–2015 Liverpool 14 (0)2014–2015 → Sevilla (pinjaman) 16 (2)2015– Celta 101 (55)Tim nasio...

 

 

Song by Pete Seeger This article is about the song. For the Byrds album, see Turn! Turn! Turn! (album). For other uses, see Turn, Turn, Turn. Turn! Turn! Turn!, also known as or subtitled To Everything There Is a Season, is a song written by Pete Seeger in 1959.[1] The lyrics – except for the title, which is repeated throughout the song, and the final two lines – consist of the first eight verses of the third chapter of the biblical Book of Ecclesiastes. The song was originally re...

Ermarco di Mitilene Ermarco di Mitilene (in greco antico: Ἕρμαρχoς?, Hérmarchos; IV secolo a.C. – III secolo a.C.) è stato un filosofo epicureo greco antico. Indice 1 Biografia 2 Opere e pensiero 3 Note 4 Bibliografia 5 Altri progetti 6 Collegamenti esterni Biografia Ermarco, come scrive Diogene Laerzio, nacque a Mitilene da Agemorto[1]; poiché apparteneva a una famiglia di modeste condizioni, da giovane esercitò l'arte della retorica[2]. In occasione di un soggi...

 

 

American filmmaker (born 1972) Ava DuVernayDuVernay in 2018BornAva Marie DuVernay (1972-08-24) August 24, 1972 (age 51)Long Beach, California, U.S.Alma materUniversity of California, Los Angeles (BA)OccupationsDirectorproducerscreenwriterfilm publicist Ava Marie DuVernay (/ˌdjuːvərˈneɪ/;[1] born August 24, 1972) is an American filmmaker, screenwriter, and producer. She is a recipient of a Primetime Emmy Award, two NAACP Image Award, a BAFTA Film Award, and a BAFTA TV A...

 

 

British films of 1930 Cinema of theUnited Kingdom List of British films British horror 1888–1919 1920s 1920 1921 1922 1923 19241925 1926 1927 1928 1929 1930s 1930 1931 1932 1933 19341935 1936 1937 1938 1939 1940s 1940 1941 1942 1943 19441945 1946 1947 1948 1949 1950s 1950 1951 1952 1953 19541955 1956 1957 1958 1959 1960s 1960 1961 1962 1963 19641965 1966 1967 1968 1969 1970s 1970 1971 1972 1973 19741975 1976 1977 1978 1979 1980s 1980 1981 1982 1983 19841985 1986 1987 1988 1989 1990s 1990 19...

Asosiasi Sepak Bola Kepulauan CookOFCDidirikan1971Kantor pusatAvaruaBergabung dengan FIFA1994Bergabung dengan OFC1994PresidenTiraa ArereWebsitehttps://www.cookislandsfootball.com/ Asosiasi Sepak Bola Kepulauan Cook adalah badan pengendali sepak bola di Kepulauan Cook. Sejarah Asosiasi sepak bola ini didirikan pada tahun 1971,[1] yang kemudian pada tahun 1994 asosiasi ini diterima menjadi anggota FIFA[1] dan Kantor pusat dan Akademi Asosiasi dibuka pada tahun 2004.[1] ...

 

 

No debe confundirse con Nutria marina.   Nutria gigante Estado de conservaciónEn peligro (UICN 3.1)[1]​TaxonomíaReino: AnimaliaFilo: ChordataSubfilo: VertebrataClase: MammaliaOrden: CarnivoraSuborden: CaniformiaFamilia: MustelidaeSubfamilia: LutrinaeDistribución Distribución de P. brasiliensis[editar datos en Wikidata] La nutria gigante, lobo gargantilla, arirai o ariray (Pteronura brasiliensis) es una especie de mamífero carnívoro que pertenece a la subfamilia...

 

 

Japanese humanitarian In this Japanese name, the surname is Mutsu. CountessMutsu Ryōko陸奥亮子Mutsu Ryōko in 1888 (aged 33)BornNovember 1856Edo, JapanDiedAugust 15, 1900 (aged 45)NationalityJapaneseOccupationHumanitarianSpouseMutsu Munemitsu Countess Mutsu Ryōko (陸奥 亮子, November 1856 - August 15, 1900) was a Japanese noblewoman and humanitarian. She was a member of the Japanese Red Cross Society and the wife of Count Mutsu Munemitsu. She was called the flower of Washington soci...

هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها. جزء من سلسلةعلم الأحياء القديمة أحافيرمستحاثة · أثر حفري · مؤشر أحفوري · List of fossil sites · Lagerstätte fossil beds · List of transitional fossils · قائمة المستحاثات البشرية التاريخ الطب...

 

 

Ingmar BergmanBergman pada tahun 1966LahirErnst Ingmar Bergman(1918-07-14)14 Juli 1918Uppsala, SwediaMeninggal30 Juli 2007(2007-07-30) (umur 89)Fårö, SwediaNama lainBuntel ErikssonPekerjaan Sutradara produser penulis skenario Tahun aktif1944–2005Suami/istriElse Fisher ​ ​(m. 1943; c. 1945)​Ellen Lundström ​ ​(m. 1945; c. 1950)​Gun Grut ​ ​(m. 1951;&...

 

 

خريطة تظهر موقع «قهستان» في العهد العباسي - لي سترانج. قُهستان (أو قوهستان) هو اسم لعدة مواقع جبلية في بلاد فارس. ذكر صاحب معجم البلدان أن قوهستان تعريب لكلمة كوهستان، ومعناه موضع الجبال لأن كوه هو الجبل بالفارسية، وقال أن أكثر بلاد العجم لا يخلو عن موضع يقال له: قوهستان. لكنه...

Diphenylchlorarsine Names Preferred IUPAC name Diphenylarsinous chloride Other names diphenylchlorarsine, diphenylchloroarsenic, chlorodiphenylarsane, sneezing gas Identifiers CAS Number 712-48-1 Y 3D model (JSmol) Interactive imageInteractive image Abbreviations Ph2AsCl ChemSpider 12306 Y ECHA InfoCard 100.010.839 PubChem CID 12836 UNII 1H39V3559B Y CompTox Dashboard (EPA) DTXSID30858733 InChI InChI=1S/C12H10AsCl/c14-13(11-7-3-1-4-8-11)12-9-5-2-6-10-12/h1-10H YKey: ...

 

 

Symbol For the crescent moon associated with Islam, or Hilal, see Islamic calendar. Ancient design of the star and crescent symbol as used in Byzantium in the 1st century BC.The star and crescent symbol used in the minted coins of the Sassanian Empire from the 3rd century until the 7th century. This coin was coined under Ardashir III.The Adoration of the Magi by Stephan Lochner; on the left, the crescent and star is depicted in the flag of representatives of Byzantium. The star and crescent i...

 

 

Simchat TorahGulungan Taurat (Torah)Nama resmiBahasa Ibrani: שמחת תורהNama lainTerjemahan: Bersukacita dengan TauratDirayakan olehYudaisme dan orang YahudiJenisYahudiMaknaPuncak hari raya Sukkot dan Shemini Atzeret. Parsyah terakhir dari Kitab Ulangan dibacakan di sinagoge. Setiap orang dipanggil kepada Pembacaan Taurat. Penutup dari siklus pembacaan Taurat tahunan. Bersukacita dengan Taurat.PerayaanMenari di sinagoge ketika semua gulungan Taurat diarak ke luar dalam tujuh kali perjal...

Receptor family RIG-I-like receptors (retinoic acid-inducible gene-I-like receptors, RLRs) are a type of intracellular pattern recognition receptor involved in the recognition of viruses by the innate immune system.[1][2] RIG-I (retinoic-acid inducible gene or DDX58) is the best characterized receptor within the RIG-I like receptor (RLR) family. Together with MDA5 (melanoma differentiation-associated 5) and LGP2 (laboratory of genetics and physiology 2), this family of cytopla...

 

 

  لمعانٍ أخرى، طالع كاريكا (توضيح). كاريكا معلومات شخصية الميلاد 5 أكتوبر 1960 (العمر 63 سنة)أراراكوارا  الطول 1.83 م (6 قدم 0 بوصة) مركز اللعب مهاجم الجنسية البرازيل  المسيرة الاحترافية1 سنوات فريق م. (هـ.) 1978–1982 غواراني 77 (46) 1983–1987 ساو باولو 67 (54) 1987–1993 نابولي 164 (73) 1...