如何检测参数是否为仅具有int参数的被调用函数中的char

How to detect if a parameter is a char in a called function which only has int parameters

我有一个程序,它写了一个给定高度和宽度的矩形作为参数,我希望能够检测 x 或 y 是否是一个字符,这样我就可以停止程序并写“无效大小”

void rush(int x, int y)
{
    int curr_line;
    int curr_char;
    
    if (x <= 0 || y <= 0) {
        write(1, "Invalid size\n", 13);
    }
    for (curr_line = 1; curr_line <= y; curr_line ++) {
        if (curr_line == 1 || curr_line == y) {
            draw_line(x, curr_char, 1);
        } else {
            draw_line(x, curr_char, 0);
        }
        write(1, "\n", 1);
    }
}
void main(void)
{
    rush(5, 'g');
}

(例如这里的 'g' 字符应该 rush();写入无效大小)

PS:我无法将代码放入 main();函数。

无符号的 char 的值是 0 到 255,无符号的是 -128 到 127,所以当将 char 发送到接收 int 的函数时,它将被转换为 int,所以除非你只想拥有以下值超出 char 的范围,在 C 中无法做到这一点。