
Learn to install and configure GNU toolchains for C and C++ on POSIX and Windows, and explore legacy C/C++ practices, basic data types, control flow, arrays, functions, and preprocessor directives.
Trace the evolution of C++ standards across three generations, from C and C++ headers to modern IO streams and namespaces, to ensure code targets the correct standard.
install and configure the GNU toolchain on Windows with cygwin or mingw, enabling gcc and g++ across Linux and Windows, and integrate with Visual Studio.
Explore the common ground of C and C++ by examining main, includes, preprocessor, and shared data types, then understand the evolution and compatibility between the languages.
Learn how C and C++ start with a single main function, print strings with printf, and return int, while compiling to an OS executable across Windows, Linux, and Mac OS.
Learn how to create, save, and compile a simple C program using notepad and gcc in cygwin, then run and debug the executable to verify behavior.
Explain the two types of comments in C and C++, using block comment and two line comments, and switch between cc and gcc to verify builds.
Learn variables, initialization, and memory concepts in C and C++, explore global and local scope, and master printf formatting, pointers, and basic data types through hands-on examples.
Master printf formatting, including semicolon-separated statements, precision control for floating point values, and practical formatting of money, while contrasting legacy printf with modern input streams.
Learn how to read input in C using scanf, including strings and numbers into variables, using ampersand for addresses, and exploring local versus dynamic memory with malloc and free.
Explore the GNU toolchain and how linking enables debugging by integrating the preprocessor, compiler, and linker, and by embedding debugging symbols. Name executables with -o and manage object files.
Learn how to write and call your own functions in C and C++, using main's int return, argc/argv, headers, and the standard library, and implement parameterized and default greetings.
Explore how encapsulation hides data inside functions, enabling local changes, and learn to use escape sequences and format strings in the C and C++ standards to control output.
Learn how to manage file paths and headers across Windows and posix, using absolute and relative paths, avoiding changes to existing headers, and PATH-aware tools with gcc and cygwin.
Explore how C and C++ use if statements, scanf, and printf to input a float and compare it to 0.99, printing whether it is less or greater.
Explore assignment operators and equality testing with the double equals in C/C++. Learn to use while loops, arrays with zero-based indexing, and scanf/printf to read and display data.
Demonstrates building a basic calculator in C/C++ using Notepad++ and Cygwin, incrementally implementing input parsing, operation handling, and result display.
Learn data conversion and string scanning in C/C++ by reading integers, floats, and chars from a string using atoi, atof, atol, atoll, and modulus for conditions.
Delve into C/C++ operators, from unary and binary forms to short-circuit and the upcoming trinary (ternary) expressions, using parentheses to control evaluation order.
Explore how data type sizes reveal memory footprints, and apply bitwise operations, shifts, and masking to move bits, test conditions, and represent values in binary and hexadecimal in C++.
Implement a show bits function in C++ that prints an unsigned char in decimal, hex, and binary, using malloc and bit shifting to illustrate powers of two.
Explore how command line arguments are passed in C and C++ across Windows and Linux, using argc and argv, and learn differences in main signatures, path limits, and cross-platform testing.
Compare Windows and POSIX command line conventions, options, and argument handling; explain raw versus cooked input, and demonstrate refactoring a calculator to process multiplication, division, and parameters.
Implement a command-line calculator in c/c++ that parses two string operands, uses an opcode to compute balance, and validates parameters via function overloading and string scanning.
Explore how POSIX and Windows environments support standard input, output, and error, and implement IO redirection and piping with cat and type to save results to an external file.
Learn more keywords and control structures in c and c++, including for and if, explore brace alternatives, and use flowcharts and UML diagrams to document main and decisions.
Learn how boolean values and integral representations drive if/else logic in C and C++, including true, false, zero and non-zero, and the evolution of the bool type.
Learn the ternary operator in C/C++: use the question mark and colon to assign and test boolean results. Convert if/else to ternary, run the app, and toggle conditions.
Explore how switch statements work in C and C++, including case handling, break, and default, with examples on 0, 1, and 2. Learn formatting flexibility and boolean integration.
learn how to work with zero-based arrays of integers, including memory addressing, offsets, and for loops to iterate through four elements and display data.
Explore dynamic memory management in C++ by creating and initializing arrays with new, terminating with a sentinel value, traversing with a pointer, and freeing with delete.
Explore managing while iterations with break, continue and do-while variants, using arrays and termination checks while preventing infinite loops, handling goto pitfalls and segmentation violation.
Delve into pointer and addressable concepts in C and C++, including goto usage, integral types, and zero-terminated arrays. Learn evaluation order, null handling, and format specifiers like %c and %d.
Explore how limits.h defines minimum and maximum values across platforms, and learn to locate and examine limits definitions on Windows, Linux, and Cygwin using def and diff tools.
Explains the C/C++ preprocessor and its macro language, showcasing conditional blocks and common directives with practical demos like limits.h. Emphasizes using preprocessor features to manage platform-specific code.
Explore character size, signed versus unsigned interpretation, and integer range limits in C and C++ across platforms, using limits for char, int, long, and long long.
Extend show bits to display bit patterns for multiple types via overloading, and create a reusable showbits header with include guards and a dump bits function for arbitrary bit resolutions.
Learn how enumerations consolidate integral constants into a new type in C and C++, using a z year to represent months 0 to 11, with prototypes, casting, and header-implementation organization.
Explore enum values in c++, showing how they can be set or duplicated and printed from array as months. See how zero-based years map to human months using a function.
C/C++ 1000: GNU For Beginners is about creating C++ application on Linux, AIX, MacOS and other POSIX-inspired operating systems. Using Cygwin and Windows Sub-System for Linux (WSL) even students working on Microsoft Windows can begin to master the Linux / Unix programming world!
Standardized since 1998, Modern C and C++ share a rich & common legacy. Often called upon to work with legacy code, modern C/C++ software developers are more likely to encounter older, rather than newer, software. C/C++ 1000: GNU For Beginners is designed for students who will need to be able to detect the difference between the standards.
Part of a three (3) part series, GNU C/C++ For Beginners begins by covering what every new software developer should know. Starting out by focusing upon basic compiler concepts, our keyword-centric approach ensures that no concept will be left behind!
Why C/C++?
Yet another forever go-to technology, discovering how to create high-performance software often involves using some part - if not all - of the C/C++ programming standard. Not only does every operating system rely upon some part of the C/C++ standardization effort, but every modern, popular operating system supports both C/C++ as well as the GNU Tool-set. -Almost all other programming languages also support, if not directly rely upon the free & open C/C++ community!
From popular applications, robotics, and operating systems to the Cloud itself then at some point in time everything relies upon software written in C/C++.
What Will I Learn?
Using the cross-platform, time-proven GNU tool set, understanding how products such as Cygwin can be used to create standards-compliant, portable software also allows students working on Microsoft Windows to begin to master the Linux / Unix programming world. Covering control flows, functions, pseudo functions, structures, typedefs, argument processing, unions, and even state machines will prepare new students for the GNU C/C++ 2000 training opportunity.