如何检测参数是否为仅具有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 中无法做到这一点。
我有一个程序,它写了一个给定高度和宽度的矩形作为参数,我希望能够检测 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 中无法做到这一点。