我正在尝试在显示器上打印键(字符),我已经对键盘和显示器进行了编程。我现在正在尝试让用户使用键盘写入时间,如果时间有效,它应该打印时间。
我现在正在尝试创建一个函数来打印时间,我实现了一个名为printArray(char Arr[])的函数,如下所示:
void printArray(char Arr[]) {
int n = 0;
while(Arr[n] != 0){
printkeys(Arr[n]);
n++;
}
}
printkeys方法打印将数字写入ascii代码(在以前的项目中制作,它工作)
我想打印的时间函数如下所示:
void Timettt(char Arr[], char x, char y){
printArray((Arr[0]/10 + ASCIIOFFSET));
printArray((Arr[0]%10 + ASCIIOFFSET));
putchar(':');
printArray((Arr[1]/10 + ASCIIOFFSET));
printArray((Arr[1]%10 + ASCIIOFFSET));
putchar(':');
printArray((Arr[2]/10 + ASCIIOFFSET));
printArray((Arr[2]%10 + ASCIIOFFSET));
}
当我编译代码时,Timettt函数中的printArray部分出现错误:“int”类型的参数与“char*”类型的参数不兼容
我不知道为什么当我所有的函数包括print keys函数都是void并且参数类型为char时,它会出现。
我很乐意接受您给予的任何帮助/建议
我尝试过编译它并以其他方式更改Timettt函数,但仍然得到相同的错误
1条答案
按热度按时间vngu2lb81#
char Arr[]
是指向char
数组的指针,因此Arr[0]
是char
。char
除以10并加上(我必须假设的是)一个数值常量是int
,这是由于int
可表示的整数类型的整数提升规则。我不知道你为什么要这么做,但是你的代码说的是你想把一个整数值传递给一个函数,这个函数期望一个指向
char
数组的指针,这是没有意义的,这就是为什么你的编译器会抱怨。