Skip to content

C and C++

  1. Curated index of modern C++ articles on Modernes C++ blog

    A table of contents page for the Modernes C++ blog, collecting its articles on modern C++ topics. The author of the post recommends saving it as a structured collection of C++ articles.

    A structured index of modern C++ articles gives engineers a single place to find topic-by-topic reading.

  2. 10 days ago @Arikalabs

    Using alarm(3) to stop a stuck C program on Linux

    The post explains that calling alarm(3) makes the kernel send SIGALRM after about three seconds. If the signal's default action is unchanged, the process terminates, with no polling loop or watchdog thread needed.

    A one-call timeout mechanism for runaway loops, useful for tools and tests, but it relies on signal handling and default behavior.

  3. 10 days ago @lemire

    Defaulted C++ constructors may hurt GCC compile performance

    A post by Daniel Lemire asks whether C++ constructors should be defined with = default, claiming this can have notable negative performance effects with recent GCC versions. It points to his articles for details.

    Choosing = default versus explicit constructor bodies may affect compile times or generated code, so it is worth verifying with your GCC version.

  4. C and C++Article
    11 days ago @abdimoalim_ lwn.net

    An Introduction to Lockless Algorithms

    Paolo Bonzini introduces lockless algorithms and their relevance to the Linux kernel, where traditional locking primitives have limitations.

    Useful background for engineers working on concurrency and Linux kernel code.

  5. C and C++Article
    11 days ago @abdimoalim_ lysator.liu.se

    Rob Pike's Notes on Programming in C

    A saved post shares Rob Pike's essay Notes on Programming in C, a set of style and design rules for writing C programs. The linked page is the primary source.

    Pike's classic guidance on simplicity and clarity in C is still a useful reference for code reviews and style.

  6. Static Allocation for Compilers by Alex Kladov

    A post by Alex Kladov explaining static allocation as used in TigerBeetle: all memory is allocated at startup with no later deallocation, not fixed-size static arrays. The author applies this idea to compilers.

    It offers a concrete allocation strategy for building fast, predictable compilers and long-running C/C++ systems.

  7. C and C++Article
    12 days ago @abdimoalim_ bitbashing.io

    A primer on concurrency for systems programmers

    Matt Kline's article on Bit Bashing, shared as a guide to concurrency for systems programmers. The page preview shows only the title and the blog's general description.

    Concurrency fundamentals matter for writing correct, performant C and C++ systems code.

  8. C and C++Article

    The TTY demystified: how Unix terminals work

    A long-form article by Linus Åkesson explaining the Linux/Unix TTY subsystem, the layer between terminal devices and programs. Shared as a saved link with no additional commentary.

    Useful background for engineers debugging terminal I/O, line discipline, or pseudo-terminal behavior in C programs.

  9. C and C++Article
    12 days ago @abdimoalim_ blog.llvm.org

    Chris Lattner on undefined behavior in C, part 1 of 3

    A 2011 LLVM blog post explaining undefined behavior in C, prompted by SIGTRAP signals from Clang-optimized code. The post is the first of a three-part series.

    Explains how compiler optimizations exploit undefined behavior, which matters for writing correct and safe C and C++.

  10. C and C++Article

    Review of the C standard library in practice by Chris Wellons

    A blog post by Chris Wellons reviewing the C standard library based on his practical experience using it. The post is linked from a social media share with no additional commentary.

    Offers a practitioner's view on which C standard library parts are useful or problematic in real projects.

  11. C and C++Article

    Writing a Linux Debugger, Part 1: Setup by Sy Brand

    Part 1 of a blog series by Sy Brand on writing a Linux debugger, starting with project setup. The linked page describes the start of that journey.

    Shows how a C++ debugger is built on Linux, useful for understanding process control and debugging internals.

  12. 14 days ago @abdimoalim_ agner.org

    Agner Fog's guide to optimizing subroutines in assembly language

    Shared post linking to Agner Fog's PDF guide on optimizing subroutines in assembly language. The preview contains no further page details.

    Low-level optimization techniques from a well-known performance author are useful when tuning hot C and C++ code paths.

  13. How to execute an object file: Part 1 (Cloudflare Blog)

    Ignat Korchagin's Cloudflare Blog post explores executing an object file without linking, and using an object file as a library by decomposing it and importing code from it.

    Explains object file internals and linking, useful for understanding how compiled C and C++ code is structured and loaded.

  14. 14 days ago @Arikalabs

    Simon Tatham's coroutine trick in standard C

    Simon Tatham, creator of PuTTY, describes faking coroutines in standard C using a switch/case technique behind Duff's Device combined with __LINE__. The post says PuTTY still uses versions of it in SSH protocol code.

    A portable, macro-based way to write resumable functions in C without threads or assembly.

  15. C and C++Article
    14 days ago @jedisct1 benjoffe.com

    Faster signed 64-bit floor division by constants

    A Ben Joffe article describing a faster method for computing signed 64-bit floor division when the divisor is a constant. The page describes itself as the missing chapter of Hacker's Delight.

    Relevant to C and C++ compilers and performance-sensitive code that divides by constants.

  16. 15 days ago @abdimoalim_

    Rob Pike on the byte order fallacy and C

    A quoted passage from Rob Pike's essay on the byte order fallacy argues that C makes byte-order problems easy to create, while type-safe languages make byte-order-dependent code harder to write.

    It gives a concrete view on why byte-order bugs arise in C and how language design affects them.

  17. The byte order fallacy, by Rob Pike

    Rob Pike's post argues that code asking for the native byte order is usually wrong or misguided. It recommends handling byte order explicitly instead.

    Explains why hardcoding endianness assumptions in C and C++ serialization code tends to cause portability bugs.

  18. C and C++Article
    15 days ago @mrkkrj herbsutter.com

    Why C++ and Rust grew fastest among major languages, per Herb Sutter

    Herb Sutter's post analyzes why C++ and Rust were the fastest-growing major programming languages from 2022 to 2025, citing power consumption and C++26 parallelism features such as SIMD types and std::execution.

    It gives data-backed context on C++ adoption trends and the C++26 hardware-parallelism roadmap.

  19. Understanding the fast inverse square root by Joe Groff

    An article by Joe Groff explaining the famous fast inverse square root code associated with John Carmack, though not invented by him. It covers how the math function works.

    A classic low-level floating-point trick that shows how bit-level tricks and numerical approximation work in C.

  20. What Every Programmer Should Know About Memory (Ulrich Drepper)

    A widely shared PDF by Ulrich Drepper explaining how computer memory works, including RAM, caches, and how software can use them effectively. It is hosted on FreeBSD's people site.

    Covers memory hierarchy and cache behavior, which directly affect C and C++ performance tuning.

Looking for something else?QuestionsContact