====== [hemmerling] C, C++ for Windows & MSDOS ======
*Related page:
*[[dosextender.html|DOS Extenders for Protected Mode ( 286 / 386 Mode ) on x86 DOS]].
===== Conferences, Organisations =====
==== ACCU, ACCU Conference ====
*[[http://accu.org/|ACCU. Professionalism in programming]] ( formerly: "Association of C and C++ Users" ).
*The free PDF magazine [[http://www.accu.org/index.php/journals/c78/|ACCU. Professionalism in programming "The ACCU Overload journals"]].
*[[http://en.wikipedia.org/wiki/Overload_%28magazine%29|EN.Wikipedia "Overload (magazine)"]] - The successor of "C/C++ Users Journal, C++ Report, and to a lesser extent, Dr Dobb's Journal" :-).
*[[http://accu.org/index.php/conferences|ACCU. Professionalism in programming "Conferences"]].
*[[http://www.youtube.com/channel/UCJhay24LTpO1s4bIZxuIqKw|YouTube "ACCU Conference"]].
*[[http://en.wikipedia.org/wiki/ACCU_%28organisation%29|EN.Wikipedia "ACCU (organisation)"]].
==== ADC++ Conference ====
*The German conference [[http://adcpp.de/|ADC++]] - "Advanced Developers Conference C++. Development for Professionals!".
*[[http://adcpp.de/2016/|ADC++ 2016]] in Erding, 2016-04-25 - 2016-04-27.
*Videos:
*[[http://www.youtube.com/watch?v=YZoGf0DyPfM|YouTube "Konferenz-Video. Advanced Developers Conference zu native C++
3.-4. Mai 2012 in den bayerischen Alpen"]].
==== C++Now Conference ====
*The conference "C++Now" ( formerly BoostCon ).
* The conference [[http://www.cppnow.org/|C++Now]], USA.
*[[http://www.github.com/boostcon|Github "boostcon"]].
*[[http://www.youtube.com/user/CppCon|YouTube "CppCon"]].
==== CppCon Conference ====
*The conference [[http://www.cppcon.org/|CppCon]], USA.
==== Meeting C++ Conference ====
*[[http://www.meetingcpp.com/|Meeting C++]].
*Conference [[http://www.meetingcpp.com/index.php/mcpp2013.html|Meeting C++ 2013]] in Düsseldorf.
*Conference [[http://www.meetingcpp.com/index.php/mcpp2014.html|Meeting C++ 2014]] in Berlin.
*Conference [[http://www.meetingcpp.com/index.php/mcpp2015.html|Meeting C++ 2015]] in Berlin.
*Conference [[http://www.meetingcpp.com/index.php/mcpp2016.html|Meeting C++ 2016]] in Berlin.
*[[https://www.youtube.com/user/MeetingCPP|YouTube "Meeting C++ YT Kanalseite"]].
==== C++ User Groups ====
*[[http://www.meetingcpp.com/index.php/MeetingCpp.html|Meeting C++ - Kommende C++ Events & Treffen]] -> C++ User Gruppe Hamburg.
*[[http://www.xing.com/net/moderncpp|XING "Modern C++"]] -> C++ User Gruppe Hamburg.
*[[http://wiki.attraktor.org/C%2B%2BUserGroup|Attraktor e.V. "C++UserGroup"]].
*[[http://www.meetup.com/C-User-Group-Hannover/|Meetup "C++ User Group Hannover"]].
===== Borland C++, Turbo C++, Turbo C =====
==== Compilers ====
*Borland C++ Builder.
*[[http://www.amazon.de/exec/obidos/ASIN/382668642X/hemmerling-21|Hans-Georg Schumann: "C++ für Kids. Objektorientierte Programmierung für Einsteiger"]] ( expensive book ) - is shipped with a full version of "Borland C++ Builder 1" for Windows on CD.
*[[http://www.embarcadero.com/|Embarcadero Technologies, Inc]].
*Old [[http://edn.embarcadero.com/|Embarcadero Developer Network]].
*[[http://edn.embarcadero.com/museum/antiquesoftware|Embarcadero "Antique Software"]] - Turbo C++ 1.01 for MSDOS, Turbo C 2.01 for MSDOS.
*[[http://edn.embarcadero.com/article/20633|Embarcadero "Borland C++ Compiler version 5.5 Free Download Is Here !!!"]] - As of 2021-09, no download offer anymore.
*[[http://edn.embarcadero.com/article/21205|Embarcadero "Borland C++ 5.5 Free Command-line Tools Supplementary Information"]] - "Provides explicit instructions for setting up and using the free command-line compiler.
*[[http://www.embarcadero.com/de/free-tools/ccompiler/free-download|Embarcadero "Download the Free C++ Compiler"]] # - As of 2021-09, download of the free "Embarcadero C++ 10.2 'Tokyo' Compiler and Command-line Tools". "Dieser Gratis-Download des C++-Compilers für C++Builder enthält Sprachunterstützung für C++11, das Dinkumware STL-Framework (Standard Template Library) und die vollständige Embarcadero C/C++-Runtime Library (RTL). In der Gratis-Version finden Sie ebenfalls eine Anzahl an C/C++-Kommandozeilenwerkzeugen, wie den leistungsstarken Linker und den Ressourcen-Compiler".
*New Embarcadero Community of 2021.
*[[http://blogs.embarcadero.com/|Embarcadero Blogs]] - There are no blogs :-(.
*[[http://blogs.embarcadero.com/community/|Embarcadero Community]].
*Experts told me in 2016, that the current Embarcadero C/C++ compiler is still more-or-less on the C++ language level of "Borland C/C++" of 1998, or so...., i.e. not on C++ language level C11 or even C17.
*Some other download offers.
*[[http://borland-c.software.informer.com/download/|Software Informer "Borland C++ Compiler 5.5"]]. #
*[[http://borland-c.software.informer.com/5.0/|Software Informer "Borland C++ Compiler 5.0"]] => "Borland C++ Compiler 5.5", not "5.0".
*[[http://www.winworldpc.com/product/borland-c/5x|WinWorld "Borland C++ 5.x"]] - "Borland CPP 5.02 (ISO)".
*"This version requires 32-bit Windows 95 or NT. It can still produce executables for DOS and Windows 3.1. This was the last full version of the product before it was replaced with Borland C++ Builder. Borland released a free download of 'Borland c++ 5.5', but that was a minimal command line version". "Installation does not ask for a serial".
*"Make shure the line: FILES=40 is in your CONFIG.SYS file".
*IDE ( "C:\BORLAND\BC5\bin\bcw.exe" ) - "Unsupported 16-Bit Application" error message on Win10 64-bit :-(, but the IDE, the compiler & linker are running on Win10 64-bit.
*[[http://web.archive.org/web/*/http://www.borlandc.org/|Archive.org "BorlandC.org"]] ( - 2015-11-08 ).
*[[http://web.archive.org/web/*/http://www.borlandc.org/download-borland-c-3-1/|Archive.org "BorlandC.org 'Download Borland C++ 3.1'"]] ( - 2015-10-26 ).
*[[http://www.mediafire.com/download/9nzwhehavt6x3wg/Borland+Turbo+C%2B%2B+4.5+.zip|MediaFire "Borland Turbo C++ 4.5 .zip"]]. 16-bit Windows application. Does not install on Win10 64-bit :-(.
*[[http://www.datafilehost.com/d/aa1ada86|Data File Host "Borland Turbo C++ 4.5 Portable"]].
==== Documentation =====
*[[http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/borland_C++/Borland_C++_Version_5_Programmers_Guide_1997.pdf|Uni Stuttgart "Borland_C++ Programmers Guide, Version 5"]] ( PDF ).
==== Tools ====
*[[http://www.codecutter.net/tools/bcc55tools/Makegen.htm|Codecutter.net "Makegen
Building multi-file projects with Bcc55"]].
*MemProof - heap memory and resource "leaks" debugger for Borland C/C++ 5.5 ( and Delphi ), by Atanas Stoyanov, [[http://www.automatedqa.com/|AutomatedQA]].
*[[http://wayback.archive.org/web/*/http://www.automatedqa.com/downloads/memproof/|Archive.org "AutomatedQA - MemProof by Atanas Stoyanov"]] - Download of "memp0950.zip" ( - 2007-07-12 ).
*[[http://www.scip.be/index.php?Page=ArticlesDelphi07&Lang=EN|Stefan Cruysberghs, SCIP.be "Memproof - Find memory and resource leaks"]] - "MemProof, written by Atanas Stoyanov".
*The successor of MemProof: The free [[http://smartbear.com/products/free-tools/aqtime-standard/|SmartBear Software "AutomatedQA AQtime Standard"]] - "Free Performance Profiling. Discovers and eleminate bugs and bottlenegs in your software".
*[[http://tippach.business.t-online.de/wdosx/|Michael Tippach "WDOSX - Wuschel's DOS eXtender"]].
==== Resources ====
*[[http://www.borlandforum.com/|BorlandForum]], China.
*[[http://www.codeproject.com/KB/recipes/usingbcc.aspx|The Code Project, Leon Matthews "Getting started with Borland C++ 5.5"]].
*[[http://www.webnotes.org/bcc55eng.htm|Pascal Coudert "Borland C++ 5.5 tutorial"]].
*[[http://www.ratiosoft.com/tcl/borland/|Helmut Giese, Rationelle Software-Entwicklung "Good news: Tcl again supports Borland compilers"]] - "Tcl 8.3.3 supports Borland".
*[[http://wayback.archive.org/web/*/http://www.bcbdev.com/|Archive.org "Harold Howe - BCBDEV.COM"]] ( - 2004-12-16 ).
*[[http://personal.sirma.bg/Jogy/bcc55.html|Jogy "Borland C++ 5.5"]].
*[[http://edmulroy.portbridge.com/borland.htm|Edward Mulroy "Borland Related Links"]].
*[[http://wayback.archive.org/web/*/http://www.pharo.onlinehome.de/Bcc55.html|Archive.org "Helmut Pharo - Get started with Borland's free C/C++ commandline tools"]].
*[[http://wayback.archive.org/web/*/http://www.objectcentral.com/vide/help/videdoc/bcc32.html|Archive.org "VIDE - The Borland C++ Compiler 5.5"]].
*Wikipedia.
*[[http://en.wikipedia.org/wiki/Borland|EN.Wikipedia "Borland"]], [[http://de.wikipedia.org/wiki/Borland|DE.Wikipedia "Borland"]].
*[[http://en.wikipedia.org/wiki/CodeGear|EN.Wikipedia "CodeGear"]], [[http://de.wikipedia.org/wiki/CodeGear|DE.Wikipedia "CodeGear"]].
*[[http://en.wikipedia.org/wiki/Embarcadero_Technologies|EN.Wikipedia "Embarcadero Technologies"]], [[http://de.wikipedia.org/wiki/Embarcadero_Technologies|DE.Wikipedia "Embarcadero Technologies"]].
===== Clang for LLVM =====
*[[http://www.llvm.org/|LLVM]].
*[[http://clang.llvm.org/|Clang]].
*[[http://en.wikipedia.org/wiki/Clang|EN.Wikipedia "Clang"]], [[http://de.wikipedia.org/wiki/Clang|DE.Wikipedia "Clang"]].
*[[http://en.wikipedia.org/wiki/LLVM|EN.Wikipedia "LLVM"]], [[http://de.wikipedia.org/wiki/LLVM|DE.Wikipedia "LLVM"]].
===== Digital Mars =====
==== C/C++ ====
*[[http://www.digitalmars.com/|Digital Mars]] C/C++ compiler ( formerly: Datalight C / Zorland C / Zortech C and Zortech C++ / Symantec C++ ) for Win32, Win16, DOS32 and DOS, by [[http://www.walterbright.com/|Walter Bright]].
*[[ftp://ftp.digitalmars.com/|ftp.digitalmars.com]].
*[[http://www.digitalmars.com/ctg/ctg.html|Digital Mars "Compiler & Tools Guide - Overview"]] - online documentation.
*[[http://www.digitalmars.com/ctg/fromBorland.html|Digital Mars "Switching to Digital Mars C++ from Borland"]].
*"Predefined Macros".
*"Library Functions. Digital Mars C++ supports most Borland library functions. The table below lists those Borland functions that the Digital Mars C++ run-time library does not support" => inport, inportb, outport, outportb :-(????
*[[http://www.digitalmars.com/d/archives/c++/dos/32-bits/70.html|Digital Mars "c++.dos.32-bits - inpw/outpw read/write 4 bytes in DOSX"]].
*[[http://www.github.com/DigitalMars|GitHub "DigitalMars"]].
*[[http://en.wikipedia.org/wiki/Digital_Mars|EN.Wikipedia "Digital Mars"]].
==== D ====
*[[http://en.wikipedia.org/wiki/D_%28programming_language%29|DE.Wikipedia "D (programming language)"]] - "The D programming language is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars".
*[[http://de.wikipedia.org/wiki/D_%28Programmiersprache%29|DE.Wikipedia "D (Programmiersprache)"]] - "D ist eine Programmiersprache, die sich äußerlich stark an C++ anlehnt".
==== Downloads of outdated Software Versions ====
*[[http://www.archive.org/details/SymantecCpp60|Archive.org "Symantec C++ 6.0"]].
*[[http://www.softoware.org/apps/download-digital-mars-c-c-compiler-344882-for-windows.html|Softoware "Digital Mars C/C++ Compiler"]] - "Digital Mars C/C++ Compiler 8.45".
*[[http://www.vetusware.com/download/Symantec%20C%2B%2B%207%20for%20DosWin31Win95WinNT%207.0/|Vetusware "Symantec C++ 7 for Dos/Win31/Win95/WinNT 7.0"]].
==== Resources ====
*[[http://www.drdobbs.com/cpp/examining-symantec-c-70/184409612|Dr. Dobb's Journal "Examining Symantec C++ 7.0"]], 1995.
*[[http://www.edm2.com/index.php/Zortech_C%2B%2B|EDM/2 "Zortech C++"]], [[http://www.edm2.com/index.php/Symantec_C%2B%2B|EDM/2 "Symantec C++"]] - "After Symantec stopped selling the package the original developer started selling it under the Digital Mars name and currently offers the basic version of it as a free download, however that version offers support for 16 and 32 code generation for both DOS and Microsoft Windows but contains no OS/2 support".
*[[http://news.ycombinator.com/item?id=17129678|Hacker News "DigitalMars C/C++ Compiler"]], 2018.
===== GNU-C/C++ =====
==== Development Organisations ====
*[[http://www.gnu.org/|The GNU Project]], [[http://gcc.gnu.org/|GCC, the GNU Compiler Collection]].
*[[http://www.gnu.org/software/gcc/releases.html|GCC Releases]].
*[[http://www.sourceware.org/|sourceware.org]].
==== Compilers for DOS, DOS32, Windows ====
-[[http://www.cygwin.com/|Cygwin]] - "GNU + Cygnus + Windows = cygwin".
*[[http://www.cygwin.com/faq.html|Cygwin FAQ]].
*[[http://www.cygwin.com/ml/cygwin/2003-01/msg01441.html|Cygwin mailing list "Takayoshi Shimizu: Re: undefined reference to '__getreent'"]].
*[[ftp://ftp.inf.tu-dresden.de/pub/cygwin/|Cygwin ftp mirror]].
-[[http://www.delorie.com/djgpp/|DJ Delorie "DJGPP"]] for DOS32.
*Original download for Win10 32-bit only ( does not run on Win10 64-bit ).
*No download anymore on the original website.
*[[http://mirror.koddos.net/djgpp/|mirror.koddos.net/djgpp]] - Download archive :-).
*[[http://mirror.koddos.net/djgpp/current/v2/djlsr205.zip|mirror.koddos.net/djgpp/current/v2/]].
*unzip32 A free program to unzip the archive (like PKUNZIP)
*djdev205 DJGPP V2 Development Kit and Runtime
*djlsr205 DJGPP V2 Base Library Sources
*djtst205 DJGPP V2 Test Programs (for testing the C library)
*djcrx205 DJGPP V2 Cross-to-DOS Compiler Support Files (from djlsr/djdev).
*djtzn205 DJGPP V2 Timezone Files
*djtzs205 DJGPP V2 Timezone Sources
*faq*b The full FAQ list in various formats (Info, ASCII, HTML...)
*faq*s The Texinfo sources of the FAQ and tools to generate all the different formats of the FAQ
*frfaq* DJGPP FAQ en Francais
*v2apps/ (various applications built with/for DJGPP, like RHIDE and TeX)
*v2gnu/ ports of various FSF/GNU programs to DJGPP, like gcc and binutils)
*v2tk/ (various toolkits for use with DJGPP, like Allegro and libsocket)
*v2misc/
*csdpmi* CWSDPMI, Charles Sandmann's free DPMI server binaries and docs
*mlp* ML's Executable File Packer Binaries ("djp")
*pmode* PMODE stub for djgpp V2
*wmemu* WM's alternative 387 emulator binaries for DJGPP V2 (and other miscellaneous things to use with DJGPP
*Installation: "set the DJGPP environment variable to point to the file DJGPP.ENV in the main DJGPP installation directory and add its BIN subdirectory to your PATH".
*Download for Win10 64-bit.
*[[http://www.github.com/andrewwutw/build-djgpp|GitHub "andrewwutw / build-djgpp"]] - "Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux".
*[[http://www.github.com/andrewwutw/build-djgpp/releases/|GitHub "andrewwutw / build-djgpp" - "Prebuilt binary files (GCC 10.2.0)"]].
*[[http://www.github.com/andrewwutw/build-djgpp/releases/tag/v2.8|GitHub "andrewwutw / build-djgpp" - "Prebuilt binary files (GCC 7.2.0)"]].
*[[http://www.github.com/andrewwutw/build-djgpp/issues/33|GitHub "andrewwutw / build-djgpp", Issue " Can I build DJ G++ to a 32-bit Windows executable that can run on Windows 10 x64? #33"]].
*"I can't find any C++ cross-compiler for DOS that can run a modern Windows system".
*"This release ( v2.8, GCC 7.2.0 ) works perfectly on Windows 10 x64. The only thing I could wish for is a newer compiler version like G++ 8 or 9", 2019-09.
*[[http://www.delorie.com/gnu/docs/|DJ Delorie "GNU Documentation"]].
*[[http://www.hzdr.de/FWR/VB/TUTORIALS/djgppfaq.html| DJGPP Frequently-Asked Questions List. Edition 2.10, for DJGPP Version 2.01. January 1997]] - "Starting from v2.0, DJGPP programs do not need a separate extender program, only a DPMI server to run; DJGPP includes a free 32-bit DPMI server which allows for a 32-bit, 4 GByte flat address space and up to 256 MBytes of virtual memory, a compiler which produces 32-bit protected-mode code, and a suite of GNU development tools ported to MS-DOS".
*[[http://en.wikipedia.org/wiki/DJGPP|EN.Wikipedia "DJGPP"]].
*The OpenSource IDE [[http://www.rhide.com/|RHIDE]], [[http://rhide.sourceforge.net/|SourceForge "RHIDE"]], [[http://www.sourceforge.net/projects/rhide/|SourceForge "RHIDE"]] for MSDOS and Linux - "An IDE for DJGPP and other GNU based systems".
-EMX for DOS32.
*[[http://en.wikipedia.org/wiki/EMX_%28programming_environment%29|EN.Wikipedia "EMX (programming environment)"]].
*[[http://www.os2site.com/sw/dev/emx/|Dev - EMX.OS/2 Site - OS/2 Warp software and information]] - EMX 0.9d download.
*[[https://web.archive.org/web/*/http://hobbes.nmsu.edu/h-browse.php?dir=/pub/os2/dev/emx/|Archive.org "Hobbes"]] ( -2016-03-04 ) - EMX 0.9d download.
-MinGW.
*Compiler.
-[[http://osdn.net/projects/mingw/|Open Source Development Network ( OSDN ) "MinGW - Minimalist GNU for Windows"]] ( MinGW 8.2, 9.2,.. )
-[[http://www.sourceforge.net/projects/mingw/|Sourceforge "MinGW - Minimalist GNU for Windows"]], [[http://www.mingw.org/|MinGW]], [[http://mingw.sourceforge.net/|Sourceforge "MinGW - Minimalist GNU for Windows"]] ( MinGW 2, 3, 4, 5, 6.3 ).
*For proper download and installation, you MUST use "mingw-get-setup.exe" of [[http://sourceforge.net/projects/mingw/files/Installer/|Sourceforge "MinGW - Minimalist GNU for Windows" - "Installer"]].
*To test if you properly installed MinGW, use Windows CMD, not Powershell. CMD reports missing DLLs ( "The code execution cannot proceed because XXX.dll was not found. Reinstalling the program may fix this problem" ), while Powershell quits without notice :-(.
-[[http://tdm-gcc.tdragon.net/|tdm-gcc - A compiler suite for 32- and 64-bit Windows based on the GNU toolchain]], [[http://tdm-gcc.sourceforge.net/|Sourceforge "TDM-GCC MinGW Compiler"]], [[http://www.sourceforge.net/projects/tdm-gcc/|Sourceforge "TDM-GCC MinGW Compiler"]] - "GCC for 32-bit and 64-bit Windows with a real installer & updater".
*IDE projects, which use [[http://www.mingw.org/|MinGW]] port of GCC (GNU Compiler Collection) as it's compiler.
*Legacy IDE project [[http://www.bloodshed.net/devcpp.html|Bloodshed Dev-C++]], [[http://dev-cpp.sourceforge.net/|Sourceforge "Dev-C++"]], [[http://www.sourceforge.net/projects/dev-cpp/|Sourceforge "Dev-C++"]] for Windows.
*Latest stable versions with GCC 3.x: Dev-C++ 4.9.8.0 with MinGW GCC 3.2, Dev-C++ 4.9.9.1 with MinGW GCC 3.3.1.
*The help for this program was created in Windows Help format, which depends on a feature that isn't included in Windows 8.1 :-(.
*Current IDE project [[http://orwelldevcpp.blogspot.de/|Orwell Dev-C++. The main site of the 2011 Dev-C++ fork]], [[http://orwelldevcpp.sourceforge.net/|Sourceforge "Dev-C++"]], [[http://www.sourceforge.net/projects/orwelldevcpp/|Sourceforge "Orwell Dev-C++. A portable C/C++/C++11 IDE"]] for Windows.
*Stable versions with GCC 4.x: Dev-C++ 5.7.1 with MinGW GCC 4.8.1.
*Another current IDE project [[http://wxdsgn.sourceforge.net/|Sourceforge "Dev-C++"]], [[http://www.sourceforge.net/projects/wxdsgn/|Sourceforge " wxWidgets Dialog Designer. Dev-C++ with wxWidgets designer"]] for Windows.
*[[http://www.bloodshed.net/dev/doc/|The Dev-C++ Resource Site - Documentation]].
*[[http://www.ultimatepp.org/|Ultimate++]], [[http://www.sourceforge.net/projects/upp/|Sourceforge "U++"]], [[http://upp.sourceforge.net/|Sourceforge "U++"]], [[http://code.google.com/p/upp-mirror/|Google Code "upp-mirror"]] - "A C++ cross-platform rapid application development framework".
*[[http://www.codecutter.net/tools/quincy/|Quincy 2005. A Simple IDE for C/C++]] for Windows - "Quincy 2005 makes it easy to use the [[http://www.mingw.org/|MinGW]] C/C++ compiler, and the GDB debugger".
*"MinGW Developer Studio" for Windows and Linux, by Parinya Thipchart.
*[[http://koti.mbnet.fi/vaultec/mingwstudio.php|VaulTec "MinGW Developer Studio"]] - "As an effort to keep MinGW Developer Studio alive, I have created updated installers for MinGW Developer Studio 2.05 for Windows with a newer version of the MinGW compiler system and ResEd resource editor".
*[[http://koti.mbnet.fi/vaultec/files/miscellaneous/mingwstudio|File index "MinGW Developer Studio"]] - "MinGW Developer Studio 2.06" for Linux.
*Resources.
*[[http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html|GCC, the GNU Compiler Collection "Using the GNU Compiler Collection (GCC)" - "3.8 Options to Request or Suppress Warnings"]].
*[[http://en.wikipedia.org/wiki/Dev-C%2B%2B|EN.Wikipedia "Dev-C++"]], [[http://de.wikipedia.org/wiki/Orwell_Dev-C%2B%2B|DE.Wikipedia "Orwell Dev-C++"]].
*[[http://en.wikipedia.org/wiki/WxDev-C%2B%2B|EN.Wikipedia "wxDev-C++"]].
*[[http://en.wikipedia.org/wiki/WxWidgets|EN.Wikipedia "WxWidgets"]], [[http://de.wikipedia.org/wiki/WxWidgets|DE.Wikipedia "WxWidgets"]].
==== Debugger ====
*[[http://www.gnu.org/s/gdb/|GDB: The GNU Project Debugger]].
*The OpenSource [[http://www.gnu.org/software/ddd/|DDD - Data Display Debugger]].
*The OpenSource [[http://sources.redhat.com/insight/|RedHat Insight - The GDB GUI]].
==== Resources ====
*[[http://kegel.com/crosstool/|Dan Kegel "Building and Testing gcc/glibc cross toolchains"]].
===== Microsoft Visual C++ =====
==== Microsoft Tools ====
*[[http://en.wikipedia.org/wiki/Microsoft_Visual_Studio|EN.Wikipedia "Microsoft Visual Studio"]], [[http://de.wikipedia.org/wiki/Microsoft_Visual_Studio|EN.Wikipedia "Microsoft Visual Studio"]].
*"Microsoft Visual C++ Toolkit 2003" - a free C/C++ compiler for Windows.
*[[http://www.heise.de/newsticker/meldung/Microsoft-gibt-C-Compiler-frei-97149.html|Heise "Microsoft gibt C++-Compiler frei"]] ( 2004-04-08 ) - Explanations and details about the license agreement. A must read !.
*"Visual C++ 2005 Express".
*[[http://www.microsoft.com/express/Downloads/|Microsoft Express Downloads - Visual Studio Express and SQL Server Express]].
*"All - Offline Install ISO image file" - This download contains an offline installer for "Visual C++ 2008 Express".
*"All - Offline Install ISO image file" - This download contains an offline installer for "Visual C++ 2010 Express".
*Remote debugging with Visual Studio -> See [[sdevtools.html|Software Development Tools]].
==== Third-Party Tools ====
==== Visual C++ 2008 Resources ====
*Book [[http://www.amazon.de/exec/obidos/ASIN/3540238697/hemmerling-21|Richard Kaiser: "C++ mit Microsoft Visual C++ 2008"]].
*SpringerLink [[http://www.springerlink.com/content/t53184/|Richard Kaiser: "C++ mit Microsoft Visual C++ 2008"]].
*[[http://www.rkaiser.de/|Richard Kaiser's Website]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/386645208X/hemmerling-21|Walter Saumweber: "Richtig einsteigen: Programmieren lernen mit Visual C++ 2008"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/0136151574/hemmerling-21|P. J. Deitel, H. M. Deitel, D. T. Quirk: "Visual C++ 2008 How to Program"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/3836211939/hemmerling-21|André Willms: "Einstieg in Visual C++ 2008"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/3827243238/hemmerling-21|Dirk Louis: "Visual C++ 2008 Kompendium: Das umfassende Handbuch für Programmierer"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/3935042884/hemmerling-21|Dirk Louis: "Windows Forms mit Visual C++ Einstieg und professioneller Einsatz: Einstieg und professioneller Einsatz mit den Versionen 2005 und 2008"]].
==== Visual C++ 2005 Resources ====
*Book [[http://www.amazon.de/exec/obidos/ASIN/159200816X/hemmerling-21|Aaron Miller: "Microsoft Visual C++ 2005: Express Edition. Programming for the Absolute Beginner"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/0764571974/hemmerling-21|Ivor Horton: "Ivor Horton's Beginning Visual C++ 2005"]].
==== Visual C++ 2003 Resources ====
*Book [[http://www.amazon.de/exec/obidos/ASIN/3860637851/hemmerling-21|Julian Templeman, Andy Olsen: "Microsoft Visual C++ . NET. Schritt für Schritt"]], for VS2003.
==== C++/CLI Resources ====
*Book [[http://www.amazon.de/exec/obidos/ASIN/1590597567/hemmerling-21|Marcus Heege: "Expert C++/CLI: .Net for Visual C++ Programmers"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/1590597052/hemmerling-21|Gordon Hogenson: "C++/CLI Primer: The Visual C++ Language for .NET: The Visual C++ Language of .NET"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/1430210230/hemmerling-21|Gordon Hogenson: "Foundations of C++/CLI: The Visual C++ Language for .Net 3.5"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/1430210532/hemmerling-21|Stephen R. G. Fraser: "Pro Visual C++/CLI and the .NET 3.5 Platform"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/1590596080/hemmerling-21|Dean C. Wills: "Pro Visual C++ 2005 for C# Developers. Featuring C++/CLI"]].
==== General Microsoft Resources ====
*[[http://support.microsoft.com/default.aspx?scid=kb;en-us;q138400|Microsoft Help and Support, Article ID: 138400 "Troubleshooting LNK2001 or L2029 Unresolved External Errors"]] -> Microsoft Linker.
*[[http://msdn.microsoft.com/en-us/library/aa367091%28v=VS.85%29.aspx|MSDN "Microsoft Interface Definition Language"]] (MIDL) - "The Microsoft Interface Definition Language (MIDL) defines interfaces between client and server programs. Microsoft includes the MIDL compiler with the Platform Software Development Kit (SDK)".
*[[http://msdn.microsoft.com/en-us/library/aa367300%28v=VS.85%29.aspx|MSDN "Using the MIDL Compiler"]].
==== Resources ====
*Experts told me in 2016-07, that Microsoft C/C++ 2013 and C/C++ 2015 still doesn´t implement C11 completely.
===== NVIDIA HPC SDK ( formerly: PGI Compilers and Tools ) =====
==== Tools ====
*[[http://developer.nvidia.com/hpc-sdk|NVIDIA "NVIDIA HPC SDK. A Comprehensive Suite of Compilers, Libraries and Tools for HPC]].
*"The NVIDIA HPC Software Development Kit (SDK) includes the proven compilers, libraries and software tools essential to maximizing developer productivity and the performance and portability of HPC applications".
*"C++17 parallel algorithms enable portable parallel programming using the Standard Template Library (STL). The NVIDIA HPC SDK C++ compiler supports full C++17 on CPUs and offloading of parallel algorithms to NVIDIA GPUs, enabling GPU programming with no directives, pragmas, or annotations. Programs that use C++17 parallel algorithms are readily portable to most C++ implementations for Linux, Windows, and macOS".
*Software:
*Linux √.
*Windows, 2021-10: "The NVIDIA HPC SDK for Windows will be available at a later date" :-(.
*[[http://www.pgroup.com/support/release_archive.php|The Portland Group "Download"]] - "PGI Release Archive". No free download, even not after account registration :-(.
*[[http://www.pgroup.com/resources/docs/20.4/x86/|The Portland Group "PGI version 20.4 Documentation for x86 and NVIDIA Processors"]].
*[[http://www.pgroup.com/resources/tips.htm|The Portland Group "PGI Porting and Tuning Guides"]].
*[[http://www.pgroup.com/resources/tutorials.htm|The Portland Group "PGI Learning Resources"]].
*[[http://www.pgroup.com/support/definitions.htm|The Portland Group "PGI Glossary"]].
==== Resources ====
*[[http://en.wikipedia.org/wiki/The_Portland_Group|EN.Wikipedia "The Portland Group"]] - "On August 5, 2020, Nvidia announced that the "PGI Compilers and Tools" product line has evolved into a new NVIDIA HPC SDK product available as a free download from Nvidia. The Nvidia HPC SDK includes rebranded PGI compilers and added features for developing HPC applications".
===== Open Watcom C/C++ =====
==== Open Watcom C/C++ ====
*[[http://www.openwatcom.org|Open Watcom]] for Windows, OS/2, DOS32, DOS.
*[[http://www.sourceforge.net/projects/openwatcom/files/open-watcom-1.9/|SourceForge "open-watcom. Open Watcom C/C++ compilers and tools Fork"]].
*[[http://www.github.com/open-watcom/|GitHub "open-watcom"]].
*[[http://www.github.com/open-watcom/open-watcom-v2/wiki/Open-Watcom-Documentation|GitHub "open-watcom / open-watcom-v2"]] - "Open Watcom Documentation". "Version 2.0", but somehow on the state of "Watcom C/C++ 11.0", i.e. before "Open Watcom 1.0".
*Preprocessor macros described in the manual, e.g. "_WINDOWS" and "__WINDOWS_386__" don't exist with "Open Watcom 1.9" :-(.
*The data type "long long", as available with "Open Watcom 1.9" :-), is not documented :-(.
==== Resources ====
*The exe files in the "binw" directory are 16-bit applications which can´t be executed on Win10 64bit :-(. Have a try with Win10 32-bit :-).
*The exe files in the "binnt" directory are 32-bit applications which can be executed on Win10 64bit :-).
*"C:\WATCOM\binnt\ide.exe" - The 32-bit IDE.
*[[http://www.gamedev.net/forums/topic/378009-dos-programming-in-c-compiler-errors/|gamedev.net "DOS programming in C - compiler errors"]] - "In K&R C and C89, all variables must be declared at the top of the scope. Declaring pScreen after non-variable declaration statements have been made is non-kosher" => **This is true for WATCOM-C :-( !!!!**. If you fail, typical error message "Error! E1077: Missing '}'", plus many other subsequent error messages :-(.
*[[http://howlingmad.gmxhome.de/watcom_tip_de.html|Markus Neifer "MN Watcom Tip Seite"]].
*[[http://www.azillionmonkeys.com/qed/watcom.html|Paul Hsieh "WATCOM C/C++ Links"]].
*[[http://www.azillionmonkeys.com/qed/watfaq.shtml|Paul Hsieh "The WATCOM C/C++ Programmer's FAQ"]] for WATCOM 4.11a.
*[[http://web.archive.org/web/*/http:///www.strangecreations.com/library/c/watfaq.txt|Archive.org "Paul Hsieh: The WATCOM C/C++ Programmer's FAQ"]] for WATCOM 3.95.
*[[http://pages.prodigy.net/michaln/|Michal Necasek "Michal's Homepage - Open Watcom"]].
*[[http://users.pja.edu.pl/~jms/qnx/help/watcom/compiler-tools/cpwcc.html|Jacek M. Sawoniewicz "C/C++ Compilers"]] - "C/C++ predefined macros".
*[[https://users.pja.edu.pl/~jms/qnx/help/watcom/clibref/src/getch.html|Jacek M. Sawoniewicz "getch"]].
*[[http://en.wikipedia.org/wiki/Watcom_C/C%2B%2B|EN.Wikipedia "Watcom C/C++"]].
===== Some other C/C++ Compilers / Interpreters =====
*[[http://www.softintegration.com/|SoftIntegration, Inc. "Ch"]].
*"An embeddable C/C++ interpreter for cross-platform scripting, shell programming, 2D/3D plotting, numerical computing, quick animation, and embedded scripting".
*"Ch Standard Edition is FREEWARE for both commercial and non-commercial uses".
*[[http://www.cs.virginia.edu/~lcc-win32/|Jacob Navia: "lcc-win32"]] for Windows - C compiler, free for non-commercial use.
*[[http://developer.apple.com/tools/mpw-tools/|Macintosh Programmer's Workshop]] - free C/C++ development system for MacOS Classic.
*[[http://www.pellesc.de/|Pelles C]] - Free C compiler ( not C/C++! ) for Windows.
===== C / C++ Language Resources =====
==== C Language Resources ====
*The free HTML and online HTML book [[http://openbook.galileocomputing.de/c_von_a_bis_z/|Jürgen Wolf "C von A bis Z"]].
*[[http://www.stackoverflow.com/questions/8949382/is-it-possible-to-compile-pre-ansi-kr-style-c-code-with-visual-c|StackOverflow "Is it possible to compile pre-ANSI (K&R-style) C code with Visual C++?"]] - "In order to get this to compile put the code in a .c file vs. a .cpp. This instructs Visual Studio to compile the code as C instead of C++".
==== C++ Language Resources ====
*Experts told me in 2016-07, that C++ is a "different language" since C11.
*[[http://www.parashift.com/c++-faq-lite/|Marshall Cline "C++ FAQ — Frequently Asked Questions"]].
*[[http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html|Marshall Cline "How to mix C and C++]].
*[[http://www.semantics.org/|Semantics Consulting, Inc./Steve Dewhurst]].
*[[http://www.semantics.org/localarchive.html|Semantics Consulting, Inc./Steve Dewhurst "Local Article Archive"]] - C/C++ articles.
*Bruce Eckel.
*Book [[http://www.amazon.de/exec/obidos/ASIN/0139798099/hemmerling-21|Bruce Eckel "Thinking in C++. Volume 1: Introduction to Standard C++"]].
*The free HTML book [[http://www.fi.muni.cz/usr/jkucera/tica7.html|Bruce Eckel "Thinking in C++ 2nd edition, VERSION TICA7"]], 1998 - A draft edition.
*The free book [[http://www.micc.unifi.it/bertini/download/programmazione/TICPP-2nd-ed-Vol-one-printed.pdf|Bruce Eckel "Thinking in C++. 2nd edition]] ( PDF ).
*[[http://www.codewithc.com/thinking-in-c-pdf-bruce-eckel/|Code With C. The way to computer programming "Thinking in C++ pdf (Vol 1 & Vol 2) – Bruce Eckel"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/0130353132/hemmerling-21|Bruce Eckel, Chuck Allison "Thinking in C++. Volume 2: Practical Programming"]].
*[[http://www.mindviewinc.com/|Bruce Eckel's MindView, Inc]].
*The free online HTML book [[http://www.brpreiss.com/books/opus4/|Bruno R. Preiss "Data Structures and Algorithms with Object-Oriented Design Patterns in C++"]].
*[[http://uw714doc.sco.com/en/SDK_cprog/CONTENTS.html|SCO UnixWare 7 Documentation "Programming in standard C and C++"]].
*[[http://www.gotw.ca/|GotW.ca: Herb Sutter]] - "Herb Sutter is a leading authority on software development. He is the best selling author of 'Exceptional C++' and three other books".
*The free HTML and online HTML books [[http://www.highscore.de/|Boris Schäling "Programmieren in C++: Einführung"]], [[http://www.highscore.de/|Boris Schäling "Programmieren in C++: Aufbau"]] and [[http://www.highscore.de/|Boris Schäling "Die Boost C++ Bibliotheken"]].
*Wikipedia.
*[[http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B|EN.Wikipedia "Compatibility of C and C++"]].
==== Modern C++ Language Resources ====
*Experts told me in 2016-07, that C++ is a "different language" since C11.
*Modern C++ Features:
*Smart Pointers.
==== Embeddded C++ Language Resources ====
*Alex Robenko.
*[[http://www.gitbook.com/book/arobenko/bare_metal_cpp/details|GitBook "Alex Robenko: Practical Guide to Bare Metal C++"]], [[http://bare-metal-cpp.blogspot.de/|Blogspot "Practical Guide to Bare Metal C++"]].
*[[http://developer.openmono.com/en/latest/articles/bare_metal_cpp.html|ReadTheDocs "3. Bare Metal C++: A Practical Guide"]].
*[[http://www.reddit.com/r/cpp/comments/4bqdry/practical_guide_to_bare_metal_c/?|Reddit "Practical Guide to Bare Metal C++"]].
*[[http://www.bell0bytes.eu/kvasir/|Kvasir]], [[http://www.github.com/kvasir-io|Github "kvasir-io"]] - "Kvasir. C++ Metaprogramming library enabling better static checking and register abstraction in embedded software".
*[[http://parallella.org/forums/viewtopic.php?f=49&t=2327|Parallella Community "How to shrink your C++ code to fit on an Epiphany core"]].
*[[http://www.raspberrypi.org/forums/viewtopic.php?t=114357&p=809669|Raspberry Pi "C++ bare metal coding"]].
*[[http://stackoverflow.com/questions/35421328/high-performance-bare-metal-abstraction|StackOverflow "High Performance Bare Metal Abstraction [closed]"]].
*Book [[http://www.amazon.de/exec/obidos/ASIN/0750687061/hemmerling-21|Miro Samek "Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems"]].
===== Questionnaires, Quizzes =====
*[[http://www.cppquiz.org/quiz/about/|Anders Schau Knatten "C++ Quiz"]].
===== Literature for "Modern C++" =====
==== Literature for "Modern C++" ====
*[[http://www.aristeia.com/|Scott Meyers. Software Development Consultant]].
*[[http://www.aristeia.com/books.html|Scott Meyers. Software Development Consultant "Scott Meyers. Books, etc."]].
*[[http://en.wikipedia.org/wiki/Scott_Meyers|EN.Wikipedia "Scott Meyers"]].
*Blog [[http://scottmeyers.blogspot.de/|The View from Aristeia. Scott Meyers' Professional Activities and Interests]].
*[[http://www.amazon.de/Scott-Meyers/e/B004BBEYYW/hemmerling-21|Amazon.DE Autorenseite "Scott Meyers"]].
==== Literature for "Classical C++" ====
==== Resources ====
*[[http://accu.org/index.php?module=bookreviews&func=browse|ACCU. Professionalism in programming "Browse all ACCU Book Reviews"]].
===== The C & C++ Languages =====
==== #pragma ====
*Borland.
*[[http://docwiki.embarcadero.com/RADStudio/Alexandria/en/Pragma_Directives_Overview_Index|Embarcadero Wiki "#pragma Directives Overview Index"]].
*[[http://docwiki.embarcadero.com/RADStudio/Alexandria/en/Pragma_warn|Embarcadero Wiki "#pragma warn"]].
*[[http://www.delphigroups.info/3/48/19707.html|DelphiGroups "E2228 Too many error or warning messages ??"]].
*Microsoft.
*[[http://docs.microsoft.com/en-us/cpp/preprocessor/comment-c-cpp|Microsoft Docs "Microsoft C++, C, and Assembler C/C++ preprocessor / Pragma directives and the __pragma and _Pragma keywords"]].
*[[http://docs.microsoft.com/en-us/cpp/preprocessor/comment-c-cpp|Microsoft Docs "comment pragma"]].
*[[http://docs.microsoft.com/en-us/cpp/preprocessor/warning|Microsoft Docs "warning pragma"]].
==== ( C++ 20 ) Coroutines ====
=== Language Reference ===
*[[http://en.cppreference.com/w/cpp/language/coroutines|C++ Reference "Coroutines (C++20)"]].
*[[http://en.cppreference.com/w/cpp/compiler_support|C++ Reference "C++ compiler support"]].
*"C++ 20 Coroutines" => GCC 10 :-), Clang 8 (partial), MSVC 19.28 (16.8) :-), Nvidia HPC C++ (ex Portland Group/PGI) NO :-(.
=== Resources ===
*[[http://www.google.com/search?q=C%2B%2B20++coroutines|Google - Search for "c++ coroutines"]].
*[[http://www.scs.stanford.edu/~dm/blog/c++-coroutines.html|David Mazières "My tutorial and take on C++20 coroutines"]].
*[[https://devblogs.microsoft.com/cppblog/c-coroutines-in-visual-studio-2019-version-16-8/|Microsoft DevBlogs, Jonathan "C++ Coroutines in Visual Studio 2019 Version 16.8"]].
*[[http://www.modernescpp.com/index.php/c-20-coroutines-the-first-overview|Modern C++ "C++20: Coroutines - A First Overview"]].
==== Control Structures ====
=== Duff’s Device ===
*[[http://en.wikipedia.org/wiki/Duff%E2%80%99s_Device|EN.Wikipedia "Duff’s Device"]], [[http://de.wikipedia.org/wiki/Duff%E2%80%99s_Device|DE.Wikipedia "Duff’s Device"]].
=== Setjmp & Longjmp ===
*[[http://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.lib_ref/topic/s/setjmp.html|BlackBerry QNX "setjmp()"]].
*"Zero if invoked directly, or nonzero if the return is the result of a call to the longjmp() function".
*Examples:" :-).
*[[http://docwiki.embarcadero.com/RADStudio/Sydney/en/Setjmp|Embarcadero Doc "setjmp"]] - "A task state is complete enough that setjmp and longjmp can be used to implement co-routines".
*[[http://docwiki.embarcadero.com/RADStudio/Sydney/en/Longjmp|Embarcadero Doc "longjmp"]] - "longjmp cannot pass the value 0; if 0 is passed in retval, longjmp will substitute 1".
*[[http://docstore.mik.ua/manuals/hp-ux/en/B2355-60130/setjmp.3C.html|HP-UX Reference "setjmp(3C)"]].
*setjmp() saves its stack environment in env (**whose type, jmp_buf, is defined in the header file**) for later use by longjmp(). It returns the value 0.
*longjmp() restores the environment saved by the last call of setjmp() with the corresponding env argument. After longjmp() is completed, program execution continues as if the corresponding call of setjmp() (which must not itself have returned in the interim) had just returned the value val. longjmp() cannot cause setjmp() to return the value 0. If longjmp() is invoked with a second argument of 0, setjmp() returns 1. All accessible data values are valid as of the time longjmp() is called. https://docstore.mik.ua/manuals/hp-ux/en/B2355-60130/setjmp.3C.html
*[[http://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=apis-setjmppreserve-stack-environment|IBM "setjmp–Preserve stack environment"]].
*[[http://docs.microsoft.com/en-gb/cpp/cpp/using-setjmp-longjmp?view=msvc-170|Microsoft Docs "Using setjmp and longjmp"]].
*[[http://man.openbsd.org/setjmp.3|OpenBSD manual page server "sigsetjmp, siglongjmp, setjmp, longjmp, _setjmp, _longjmp — non-local jumps"]]
*[[http://qastack.com.de/programming/14685406/practical-usage-of-setjmp-and-longjmp-in-c|QA Stack "Praktische Verwendung von setjmp und longjmp in C"]].
*[[http://www.quick-adviser.com/what-does-setjmp-and-longjmp-do/|Quick Advisor "What does setjmp and longjmp do?"]].
*[[http://rules.sonarsource.com/c/RSPEC-982|SonarSource "'setjmp' and 'longjmp' should not be used"]].
*[[http://www.stackoverflow.com/questions/14685406/practical-usage-of-setjmp-and-longjmp-in-c|StackOverflow "Practical usage of setjmp and longjmp in C"]].
*[[http://www.stackoverflow.com/questions/7334595/longjmp-out-of-signal-handler|StackOverflow "Longjmp out of signal handler?"]].
*[[http://thedailywtf.com/articles/Longjmp--FOR-SPEED!!!|TheDailyWTF "Longjmp - FOR SPEED!!!"]].
*[[http://www.tratt.net/laurie/blog/entries/timing_setjmp_and_the_joy_of_standards.html|Laurence Tratt: "Timing setjmp, and the Joy of Standards"]], 2005.
*[[http://www.tutorialspoint.com/c_standard_library/c_function_longjmp.htm|TutorialsPoint "C library function - longjmp()"]].
*[[http://en.wikipedia.org/wiki/Setjmp.h|EN.Wikipedia "setjmp.h"]].
==== Embedded C/C++ Aspects ====
=== Static, Consts ===
*[[http://www.geeksforgeeks.org/static-variables-in-c/|GeeksForGeeks "Static Variables in C"]].
*[[http://softwareengineering.stackexchange.com/questions/352624/static-vs-non-static-in-embedded-systems|StackExchange "Static vs non-static in embedded systems [duplicate]"]].
*[[http://www.stackoverflow.com/questions/13185751/what-is-the-difference-between-static-const-and-const|StackOverflow "What is the difference between static const and const?"]].
*[[http://www.stackoverflow.com/questions/32705419/const-arrays-in-c|StackOverflow "Const arrays in C"]] - "You can't create a const array because arrays are objects and can only be created at runtime and const entities are resolved at compile time" :-(.
==== File I/O ====
*[[http://www.man7.org/linux/man-pages/man3/perror.3.html|Linux Manual Pages "perror(3)"]].
*[[http://www.quora.com/What-is-the-use-of-getch-putch-getchar-putchar-Cant-we-write-a-program-without-using-these-in-C-language|Quora "What is the use of getch(), putch(), getchar(), putchar()? Can't we write a program without using these in C language?"]].
*[[http://www.riptutorial.com/c/example/29223/read-lines-from-a-file|RIP Tutorial "Read lines from a file"]].
*[[http://www.solarianprogrammer.com/2019/04/03/c-programming-read-file-lines-fgets-getline-implement-portable-getline/|Solarianprogrammer "C Programming - read a file line by line with fgets and getline, implement a portable getline version"]], 2019.
*[[http://www.github.com/sol-prog/fgets-getline-usage-examples|GitHub "sol-prog / fgets-getline-usage-examples"]].
*[[http://manpages.ubuntu.com/manpages/bionic/pt/man3/puts.3.html|Ubuntu Manpages "fputc, fputs, putc, putchar, puts - output of characters and strings"]].
*[[http://www.stackoverflow.com/questions/47817359/how-to-determine-number-of-characters-that-were-read-with-fgets|StackOverflow "How to determine number of characters that were read with fgets()?"]].
*[[http://www.stackoverflow.com/questions/32663407/fgets-return-less-characters?rq=1|StackOverflow "fgets return less characters"]].
*[[http://www.tutorialspoint.com/c_standard_library/c_function_fgets.htm|Tutorialspoint "C library function - fgets()"]].
*[[http://www.tutorialspoint.com/unix_system_calls/open.htm|Tutorialspoint "open() - Unix, Linux System Call"]].
*[[http://www.tutorialspoint.com/unix_system_calls/read.htm|Tutorialspoint "read() - Unix, Linux System Call"]].
*[[http://www.tutorialspoint.com/unix_system_calls/write.htm|Tutorialspoint "write() - Unix, Linux System Call"]].
*[[http://www.tutorialspoint.com/unix_system_calls/close.htm|Tutorialspoint "close() - Unix, Linux System Call"]].
==== Function Pointers ====
*[[http://www.codeproject.com/Tips/800474/Function-Pointer-in-C-Struct|The Code Project "Function Pointer in C Struct"]].
*[[http://stackoverflow.com/questions/33554359/can-i-reliably-set-a-function-pointer-to-null-in-c-and-c|StackOverflow "Can I reliably set a function pointer to NULL in C and C++?"]] - "((void *)0)" in C.
==== Include Files ====
*[[http://www.stackoverflow.com/questions/1804486/should-i-use-include-in-headers|StackOverflow "Should I use #include in headers?"]].
*[[http://www.stackoverflow.com/questions/38402525/difference-between-h-files-and-inc-files-in-c|StackOverflow "Difference between .h files and .inc files in c"]].
==== Keyboard Input ( for Linux ) ====
*[[http://www.stackoverflow.com/questions/1798511/how-to-avoid-pressing-enter-with-getchar-for-reading-a-single-character-only|StackOverflow "How to avoid pressing Enter with getchar() for reading a single character only?"]].
*[[http://www.stackoverflow.com/questions/7469139/what-is-the-equivalent-to-getch-getche-in-linux|StackOverflow "What is the equivalent to getch() & getche() in Linux?"]].
*"CamelForth in C by Brad Rodriguez"( see => [[forth04.html|FORTH 4/7]] ) implements a complete application solution for keyboard input on Linux.
==== Math ====
=== Fixed-Point Math ===
*[[http://en.wikipedia.org/wiki/Libfixmath|EN.Wikipedia "libfixmath"]].
*[[http://www.github.com/gavinhoward/bc|GitHub "gavinhoward/bc"]] - "An implementation of the POSIX bc calculator with GNU extensions and dc, moved away from GitHub. Finished, but well-maintained".
==== Preprocessor Macros Compiler & OS Detection ====
*[[http://www.beefchunk.com/documentation/lang/c/pre-defined-c/precomp.html|BeefChunk "Pre-defined C/C++ Compiler Macros"]].
*[[http://www.beefchunk.com/documentation/lang/c/pre-defined-c/precomp.html|Nicolas Cormier "Pre-defined C/C++ Compiler Macros"]].
*[[http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html|Gnu GCC "3.7.2 Common Predefined Macros"]].
*[[http://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros|Microsoft Docs "Predefined macros"]].
*"_WIN32 Defined as 1 when the compilation target is 32-bit ARM, 64-bit ARM, x86, or x64. Otherwise, undefined".
*"_WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64. Otherwise, undefined".
*[[http://www.sourceforge.net/p/predef/wiki/Compilers/|SourceForge Wiki "Pre-defined Compiler Macros"]].
*"__BORLANDC__".
*Borland C++ 5.02. C++ Builder 1.0 - 0x520, 3.0 - 0x530, 4.0 - 0x540. Latest version with DOS support :-).
*Borland C++ 5.5. C++ Builder 5.0 - 0x550.
*Borland C++ 5.51. C++ Builder 5.0 - 0x551.
*Free Borland C++ 5.52 command line tools - 0x552. No DOS support :-(.
*[[http://arduino.stackexchange.com/questions/19892/list-of-arduino-board-preprocessor-defines|StackExchange "List of Arduino board preprocessor #defines"]].
*[[http://www.stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor|StackOverflow "How to detect reliably Mac OS X, iOS, Linux, Windows in C preprocessor?"]].
==== ( C++ ) Style Guide ====
*[[http://google.github.io/styleguide/cppguide.html|GitHub.io "Google C++ Style Guide"]].
==== Variables & Data Types ====
=== Variable Declaration at Top of Scope ===
*[[http://www.gamedev.net/forums/topic/378009-dos-programming-in-c-compiler-errors/|gamedev.net "DOS programming in C - compiler errors"]] - "In K&R C and C89, all variables must be declared at the top of the scope. Declaring pScreen after non-variable declaration statements have been made is non-kosher".
=== Data Types ===
*[[http://en.wikipedia.org/wiki/C_data_types|EN.Wikipedia "C data types"]], [[http://de.wikipedia.org/wiki/Datentypen_in_C|EN.Wikipedia "Datentypen in C"]].
*"The minimum size for char is 8 bits, the minimum size for short and int is 16 bits, for long it is 32 bits and long long must contain at least 64 bits".
*"long long - Specified since the C99 version of the standard".
*WATCOM-C datatypes:
*INTEGER*4 => 32 bit.
*COMPLEX*16 => REAL 64 bit, IMAGINARY 64 bit => 64 bit.
*[[http://www.ibm.com/docs/en/ibm-mq/9.0?topic=platforms-standard-data-types-unix-linux-windows|IBM "Standard data types on UNIX, Linux, and Windows"]].
-32-bit UNIX and Linux applications.
-64-bit UNIX and Linux applications.
-Windows 64-bit applications.
=== Limits ( INT_MAX,.. ) ===
*[[http://docs.microsoft.com/en-us/cpp/c-language/cpp-integer-limits?view=msvc-170|Microsoft Docs "C and C++ Integer Limits"]].
*[[http://stackoverflow.com/questions/152016/detecting-cpu-architecture-compile-time|StackOverflow "Detecting CPU architecture compile-time"]].
#if defined(__x86_64__) || defined(_M_X64)
#elif defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86)
*[[http://en.wikibooks.org/wiki/C_Programming/limits.h|EN.Wikibooks "C Programming/limits.h"]]#.
=== long long ====
*The data type "long long" ( 64-bit long ) is not available with Arduino AVR C/C++ and Borland C++ 5.5.1 :-(.
*[[http://www.stackoverflow.com/questions/35008562/too-many-types-in-declaration-error-in-c|StackOverflow "Too many types in declaration error in c++"]].
*[[http://learn.sparkfun.com/tutorials/data-types-in-arduino/all|SparkFun Tutorials "Data Types in Arduino"]].
=== Printing / Text Output ===
*[[http://www.stackoverflow.com/questions/6400180/how-to-printf-long-long|StackOverflow "How to printf long long"]] - "%lld is the standard C99 way".
=== "struct" vs "typedef struct" ===
*[[http://www.stackoverflow.com/questions/612328/difference-between-struct-and-typedef-struct-in-c|StackOverflow "Difference between 'struct' and 'typedef struct' in C++?"]].
==== Value Conversions ( String to Integer, to Float ) ====
*[[http://www.stackoverflow.com/questions/8871711/atoi-how-to-identify-the-difference-between-zero-and-error|StackOverflow "atoi — how to identify the difference between zero and error?"]].
*[[http://wiki.sei.cmu.edu/confluence/display/c/ERR34-C.+Detect+errors+when+converting+a+string+to+a+number|CMU "ERR34-C. Detect errors when converting a string to a number"]].
===== Resources =====
*[[http://javatux.de/C/|Oliver Böhm "Oli's C/C++-Links"]].
*[[http://www.fz-juelich.de/jsc/cv/lang/cplusplus/cplusplus_ext|Jülich Supercomputing Centre ( JSC) "WWW C++ Information"]] - link directory.
*Comeau.
*[[http://www.comeaucomputing.com/resources/|Comeau's Resource Page]] - "Comeau is proud to provide you with a repository of C++ links and resources".
*[[http://www.comeaucomputing.com/4.0/docs/userman/export.html|Comeau C++ Export Overview]].
*[[http://www.willus.com/ccomp.shtml|Willus.com's Win32/64 C/C++ Compilers Page. Information about x86/AMD64/EM64T compilers)]].
*[[http://www.mpdvc.de/|Dieter Smode "Visual C++ FAQ"]].
*[[http://www.mpdvc.de/artikel/msdn-howto.html|Carsten Witte "HOWTO: Suchen und Finden im MSDN"]].
*[[http://www.isocpp.org/|Standard C++]] # - "The home of Standard C++ on the web — news, status and discussion about the C++ standard on all compilers and platforms".
*[[http://www.thefreecountry.com/compilers/cpp.shtml|TheFreeCountry "Free C/C++ Compilers and Interpreters"]].
*Wikipedia.
*[[http://en.wikipedia.org/wiki/List_of_compilers|EN.Wikipedia "List of compilers"]].
===== Forums, Newsgroups =====
*[[http://www.bytes.com/topic/c/|Bytes IT Community "C/C++ Forum"]].
*[[http://www.c-plusplus.de/forum/|C/C++ Forum]].
*[[http://cboard.cprogramming.com/|Cprogramming.com CBoard]] - Your Resource for C and C++.
*[[http://sources.redhat.com/ml/cygwin/|RedHat "The Cygwin Project mailing list archives"]].
*[[http://www.digitalmars.com/NewsGroup.html|Digital Mars - News Groups]].
*[[http://community.embarcadero.com/|Embarcadero Community]].
*Facebook:
*[[http://www.facebook.com/accuorg/|Facebook "ACCU"]].
*[[http://www.facebook.com/AdvancedDevelopersConference/|Facebook "ADC. @AdvancedDevelopersConference"]].
*[[http://groups.google.com/group/borland.public.cppbuilder.commandlinetools|Google Groups "borland.public.cppbuilder.commandlinetools"]], [[http://groups.google.com/group/borland.public.cppbuilder.graphics|Google Groups "borland.public.cppbuilder.graphics"]], [[http://groups.google.com/group/borland.public.cppbuilder.language.cpp|Google Groups "borland.public.cppbuilder.language.cpp"]], [[http://groups.google.com/group/borland.public.cppbuilder.nativeapi|Google Groups "borland.public.cppbuilder.nativeapi"]], [[http://groups.google.com/group/borland.public.cppbuilder.non-technical|Google Groups "borland.public.cppbuilder.non-technical"]], [[http://groups.google.com/group/borland.public.cppbuilder.oodesign|Google Groups "borland.public.cppbuilder.oodesign"]], [[http://groups.google.com/group/borland.public.cppbuilder.oodesign|Google Groups "borland.public.cppbuilder.oodesign"]], [[http://groups.google.com/group/borland.public.cppbuilder.students|Google Groups "borland.public.cppbuilder.students"]], [[http://groups.google.com/group/borland.public.cppbuilder.thirdpartytools|Google Groups "borland.public.cppbuilder.thirdpartytools"]], [[http://groups.google.com/group/borland.public.cppbuilder.vcl.components.using|Google Groups "borland.public.cppbuilder.vcl.components.using"]], [[http://groups.google.com/group/borland.public.cppbuilder.vcl.components.writing|Google Groups "borland.public.cppbuilder.vcl.components.writing"]].
*[[http://groups.google.com/group/comp.lang.c++|Google Groups "comp.lang.c++"]], [[http://groups.google.com/group/comp.lang.c++.moderated|Google Groups "comp.lang.c++.moderated"]], [[http://groups.google.com/group/comp.lang.c++.leda|Google Groups "comp.lang.c++.leda"]], [[http://groups.google.com/group/de.comp.lang.c++|Google Groups "de.comp.lang.c++"]], [[http://groups.google.com/group/de.comp.lang.iso-c++|Google Groups "de.comp.lang.iso-c++"]].
*[[http://groups.google.com/group/openwatcom.users.c_cpp|Google Groups "openwatcom.users.c_cpp"]]. [[http://groups.google.com/group/openwatcom.users.fortran|Google Groups "openwatcom.users.fortran"]], [[http://groups.google.com/group/openwatcom.contributors|Google Groups "openwatcom.contributors"]], [[http://groups.google.com/group/openwatcom.bugzilla|Google Groups "openwatcom.bugzilla"]], [[http://groups.google.com/group/powersoft.public.watcom_c_c++.general|Google Groups "powersoft.public.watcom_c_c++.general"]].
*[[http://groups.google.com/group/comp.os.msdos.djgpp|Google Groups "comp.os.msdos.djgpp"]].
*[[http://plus.google.com/107985477330768591190/|Google+ "Meeting C++"]].
*[[http://forums.developer.nvidia.com/c/accelerated-computing/hpc-compilers/|NVIDIA Developer Forums "Latest Accelerated Computing/HPC Compilers topics"]].
*[[http://www.stackoverflow.com/questions/tagged/c|Stack Overflow - Tagged Questions "[c]"]], [[http://www.stackoverflow.com/questions/tagged/c++|Stack Overflow - Tagged Questions "[c++]"]].
*[[http://www.xing.com/net/moderncpp|XING "Modern C++"]].
===== Appropriate OpenDirectory Directory Pages =====
*[[http://www.dmoz.org/Computers/Programming/Languages/|OpenDirectory "Top: Computers: Programming: Languages"]].
*[[http://www.dmoz.org/Computers/Programming/Languages/C/|OpenDirectory "Top: Computers: Programming: Languages: C"]].
*[[http://www.dmoz.org/Computers/Programming/Languages/C%2B%2B/|OpenDirectory "Top: Computers: Programming: Languages: C++"]].
*[[http://www.dmoz.org/Computers/Programming/Languages/C%2b%2b/Class_Libraries/MFC/|Computers: Programming: Languages: C++: Class Libraries: MFC]].
{{tag>C++ CPP C MFC "Microsoft Foundation Classes"}}