Postfix evaluation using a stack in c
Optimize strcmp chains
Some of your functions use strcmp() repeatedly.  You could make those functions faster by eliminating the multiple calls to strcmp() and using switch statements instead.  This function:

static bool is_operator(char *token)
{
    return (strcmp(token, &quot;/&quot;) == 0 || strcmp(token, &quot;*&quot;) == 0 ||
            strcmp(token, &quot;%&quot;) == 0 || strcmp(token, &quot;+&quot;) == 0 ||
            strcmp(token, &quot;-&quot;) == 0);
}


would become:
static bool is_operator(const char *token)
{
    if (token[1] != '\0')
        return false;

    switch (token[0]) {
        case '/':
        case '*':
        case '%':
        case '+':
        case '-':
            return true;
        default:
            return false;
    }
}

This function:

static int eval(int a, int b, char *op)
{
    if (strcmp(op, &quot;/&quot;) == 0)
        return a / b;
    if (strcmp(op, &quot;*&quot;) == 0)
        return a * b;
    if (strcmp(op, &quot;%&quot;) == 0)
        return a % b;
    if (strcmp(op, &quot;+&quot;) == 0)
        return a + b;
    if (strcmp(op, &quot;-&quot;) == 0)
        return a - b;

    return 0;
}


could become:
static int eval(int a, int b, const char *op)
{
    switch (*op) {
        case '/':
            return a / b;
        case '*':
            return a * b;
        case '%':
            return a % b;
        case '+':
            return a + b;
        case '-':
            return a - b;
        default:
            return 0;
    }
}

Notice I also added a const to your string arguments because they aren't modified by your functions.
Confusing variable names
This code confused me a little:

        int operand1 = stack_pop(s);
        int operand2 = stack_pop(s);
        stack_push(s, eval(operand2, operand1, token));


Here, operand1 is actually the second operand, and operand2 is actually the first operand, as you can see from the call to eval().  I would have rewritten it like this, because otherwise it would get confusing if someone were stepping through it with a debugger and examining variable values:
        int operand2 = stack_pop(s);
        int operand1 = stack_pop(s);
        stack_push(s, eval(operand1, operand2, token));