A small configuration value can be centralized so functions agree on limits.

shared limit Centralizing a limit avoids repeating unexplained numbers in each function.
enum constant An `enum` constant gives the compiler a named integer without preprocessor substitution.

Module Config

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

enum {
    MAX_ITEMS = 4
};

static int capped_count(int requested) {
    if (requested > MAX_ITEMS) {
        return MAX_ITEMS;
    }
    return requested;
}

int main(void) {
    int requested = 6;
    int count = capped_count(requested);

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

enum {
    MAX_ITEMS = 4
};

static int capped_count(int requested) {
    if (requested > MAX_ITEMS) {
        return MAX_ITEMS;
    }
    return requested;
}

int main(void) {
    int requested = 2;
    int count = capped_count(requested);

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

enum {
    MAX_ITEMS = 4
};

static int capped_count(int requested) {
    if (requested > MAX_ITEMS) {
        return MAX_ITEMS;
    }
    return requested;
}

int main(void) {
    int requested = 5;
    int count = capped_count(requested);

    printf("count=%d\n", count);
    return 0;
}
  1. requested ← 6

    14int main(void) {15    int requested→ 6 = 6; //@requested=2, 516    int count = capped_count(requested6);
  2. static int capped_count(int requested)

    7static int capped_count(int requested6) {8    if (requested > MAX_ITEMS) {
  3. if (requested > MAX_ITEMS)

    7static int capped_count(int requested) {8    if (requested6 > MAX_ITEMS4) {9        return MAX_ITEMS4;10    }
  4. count ← 4

    15    int requested = 6; //@requested=2, 516    int count→ 4 = capped_count(requested6);1718    printf("count=%d\n", count4);19    return 0;20}
    outputcount=4
  1. requested ← 2

    14int main(void) {15    int requested→ 2 = 2;16    int count = capped_count(requested2);
  2. static int capped_count(int requested)

    7static int capped_count(int requested2) {8    if (requested > MAX_ITEMS) {9        return MAX_ITEMS;10    }11    return requested2;12}
  3. count ← 2

    15    int requested = 2;16    int count→ 2 = capped_count(requested2);1718    printf("count=%d\n", count2);19    return 0;20}
    outputcount=2
  1. requested ← 5

    14int main(void) {15    int requested→ 5 = 5;16    int count = capped_count(requested5);
  2. static int capped_count(int requested)

    7static int capped_count(int requested5) {8    if (requested > MAX_ITEMS) {
  3. if (requested > MAX_ITEMS)

    7static int capped_count(int requested) {8    if (requested5 > MAX_ITEMS4) {9        return MAX_ITEMS4;10    }
  4. count ← 4

    15    int requested = 5;16    int count→ 4 = capped_count(requested5);1718    printf("count=%d\n", count4);19    return 0;20}
    outputcount=4