liveBook · Manning

C

As explained in 100 C++ Mistakes and How to Avoid Them

C is a general-purpose procedural programming language that provides low-level memory and systems programming capabilities.

C is a general-purpose procedural language with low-level memory and systems programming capabilities. It serves as the main predecessor of C++, whose compatibility with C helped carry C-oriented techniques into later code bases. section 5.0

C remains relevant when maintaining C++ systems because familiar C practices can survive unchanged even after a code base adopts C++. Such code may compile and run correctly while becoming harder to read, write, and maintain. section 5.0

Common C-oriented topics include:

  • Macros and specific macro usage. section 5.0
  • C-style strings and unsuitable Boolean data types. section 5.0
  • C-influenced input and output, memory allocation, variable-length parameter lists, and iterators in early C++ code. section 6.0

The practical lesson is not that every C technique is wrong. Instead, distinguish valid legacy code from C-style expressions that obscure intent, then improve maintainability where compatibility constraints allow. C and C++ have diverged, although each has influenced the other. section 5.0 section 1.5

How 100 C++ Mistakes and How to Avoid Them covers it

How deep it goes
Explains C through its relationship with C++ and inherited idioms, stopping short of detailed syntax or language internals.
Examples
Uses macros, C-style strings, Boolean values, input/output, memory allocation, and variable-length parameter lists as concrete topics.
What you can do after
Evaluate C-influenced code and identify where inherited practices make C++ code harder to read or maintain.
How it connects
Connects C to C++, C99, C-style idioms, macros, C-style strings, and memory allocation.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of 100 C++ Mistakes and How to Avoid Them. The section links point to the parts of the book it draws on.