A wrapper function can present a small interface over lower-level details.

interface function The caller uses a simple function name instead of repeating the formula.
implementation detail The formula can change inside the wrapper without changing the call site.

Public Wrapper

width
public_wrapper.c
Replay: real traced execution (multi-file project)
#include <stdio.h>

static int rectangle_area(int width, int height) {
    return width * height;
}

int main(void) {
    int width = 6;
    int height = 5;
    int area = rectangle_area(width, height);

    printf("area=%d\n", area);
    return 0;
}
#include <stdio.h>

static int rectangle_area(int width, int height) {
    return width * height;
}

int main(void) {
    int width = 4;
    int height = 5;
    int area = rectangle_area(width, height);

    printf("area=%d\n", area);
    return 0;
}
#include <stdio.h>

static int rectangle_area(int width, int height) {
    return width * height;
}

int main(void) {
    int width = 9;
    int height = 5;
    int area = rectangle_area(width, height);

    printf("area=%d\n", area);
    return 0;
}
  1. width ← 6, height ← 5

    7int main(void) {8    int width→ 6 = 6; //@width=4, 99    int height→ 5 = 5;10    int area = rectangle_area(width6, height5);
  2. static int rectangle_area(int width, int height)

    3static int rectangle_area(int width6, int height5) {4    return width6 * height5;5}
  3. area ← 30

    9    int height = 5;10    int area→ 30 = rectangle_area(width6, height5);1112    printf("area=%d\n", area30);13    return 0;14}
    outputarea=30
  1. width ← 4, height ← 5

    7int main(void) {8    int width→ 4 = 4;9    int height→ 5 = 5;10    int area = rectangle_area(width4, height5);
  2. static int rectangle_area(int width, int height)

    3static int rectangle_area(int width4, int height5) {4    return width4 * height5;5}
  3. area ← 20

    9    int height = 5;10    int area→ 20 = rectangle_area(width4, height5);1112    printf("area=%d\n", area20);13    return 0;14}
    outputarea=20
  1. width ← 9, height ← 5

    7int main(void) {8    int width→ 9 = 9;9    int height→ 5 = 5;10    int area = rectangle_area(width9, height5);
  2. static int rectangle_area(int width, int height)

    3static int rectangle_area(int width9, int height5) {4    return width9 * height5;5}
  3. area ← 45

    9    int height = 5;10    int area→ 45 = rectangle_area(width9, height5);1112    printf("area=%d\n", area45);13    return 0;14}
    outputarea=45