Skip to main content

Why Libraries Exist – From Repetition to Reuse

Updated 4 min readMarkdown
Part of seriesC Programming

So far in your C journey, you’ve been writing functions like:

  • printing characters

  • working with strings

  • performing calculations

Each time you need a function, you write it inside your program.

That works… until it doesn’t.

As your programs grow, a problem starts to appear.

1. The Problem: Rewriting Code Again and Again

Imagine you have written a useful function.

Maybe something like:

  • printing a string

  • checking if a character is uppercase

  • calculating the length of a string

Now you start a new program.

What do you do?

You copy and paste the same function again.

Then again.

Then again.

This creates problems:

  • ❌ Code duplication

  • ❌ Hard to maintain

  • ❌ Easy to introduce bugs

  • ❌ Wastes time

If you fix a bug in one copy, you must fix it everywhere else.

That’s not efficient.

2. The Idea: Reuse Instead of Rewrite

Instead of rewriting the same functions, we want to:

Write once, and reuse everywhere.

This is where libraries come in.

3. What is a Library?

A library is:

A collection of pre-written functions that you can reuse in your programs.

Instead of writing everything from scratch, you simply use functions from the library.

Think of it like this:

You don’t build a calculator every time you need to add numbers.

You just use one.

A library works the same way for code.

4. A Simple Analogy

Imagine you are cooking.

Instead of making everything from raw ingredients every time, you have:

  • pre-made spice mixes

  • pre-cut ingredients

  • ready-made sauces

These save you time and effort.

In programming, a library is like your prepared ingredients.

You focus on building your program, not rewriting basic functions.

5. Libraries in C

C already comes with built-in libraries.

For example:

#include <stdio.h> # prototype of the various functions

This gives you access to functions like:

printf()

You didn’t write printf() yourself.

It already exists in a library.

You simply use it.

6. Creating Your Own Libraries

Now here’s the key idea for this week:

You can create your own libraries.

Instead of copying functions between programs, you can:

  • group them together

  • store them in one place

  • reuse them whenever needed

This is what professional programmers do.

7. Types of Libraries (High-Level)

There are two main types of libraries in C:

1. Static Libraries

  • Included in your program during compilation

  • Become part of the final executable

2. Dynamic Libraries

  • Loaded when the program runs

  • Shared across multiple programs

This week, we focus on:

Static libraries

8. Why Static Libraries Matter

Static libraries help you:

  • Avoid repeating code

  • Keep programs organized

  • Build reusable tools

  • Improve efficiency

  • Create cleaner projects

They allow you to move from:

writing code

to:

building systems

9. What You Will Learn This Week

By the end of this module, you will be able to:

  • Create your own static library

  • Organize your code into reusable components

  • Understand how compiled code is packaged

  • Use tools that manage libraries

  • Link your library to another program

You will also complete a project where you:

  • bundle multiple functions into a single library

  • follow professional file structure

  • test your work properly

10. A Shift in Thinking

Up to now, your mindset has been:

“How do I write this function?”

Now it becomes:

“How do I organize and reuse my functions effectively?”

This is a big step.

You are moving from writing small programs to thinking like a software engineer.

11. Practice Thinking (Before Coding)

Before we move into building libraries, think about this:

  1. If you have 10 useful functions, how would you avoid copying them into every program?

  2. How would you organize your code so that other programs can use it easily?

  3. What happens if you update one function, how do you ensure all programs use the updated version?

You don’t need to answer with code yet.

The goal is to start thinking about code reuse and organization.

Key Ideas to Remember

  • Writing the same code repeatedly is inefficient

  • Libraries allow you to reuse code

  • C provides libraries, and you can create your own

  • Static libraries bundle functions into one reusable unit

What’s Next

In the next lesson, we will answer an important question:

What exactly is a static library, and how does it work internally?

You’ll start seeing how your .c files turn into reusable building blocks.

And that’s where things get interesting.

About the author

  • Heya! 👋 I love helping people, and one of the best ways I do this is by sharing what I learn and build. I started as a pharmacist at a tertiary hospital in Northern Ghana, where I saw how much technology could improve healthcare. That sparked my interest in digital health. I taught myself to code, then joined the ALX Software Engineering program, which became a turning point. I went on to complete a Master of Health Informatics at the University of Toronto. Today I am a software and AI engineer and a health informatician, and I practise remotely as a Digital Health Pharmacist. I combine clinical experience with technical skills to build tools that solve real problems in health and beyond, and I write here about what I build and what I learn.

No comments yet. Be the first to comment.

C Programming

Part 29 of 40

From today, I will be starting lessons on C programming in my ALX Software Engineering class and I look forward to sharing with you everything I learn through this series.

Up nextWhat is a Static Library? (And How It Works) In the previous lesson, we learned why libraries exist: To avoid rewriting code To reuse functions To organize programs better Now let’s go deeper. What exactly is a static library, and what is

More from this blog