gpt4 book ai didi

c - 从函数引用数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:50 25 4
gpt4 key购买 nike

我正在为一个时钟编写代码,我正在创建一个函数来显示存储在数组 time[] 中的时间

char time[]="23:59:45         ";
char display_time(char *t[], char *, char *, char *);

void main(void)
{
display_time(&time, &hr, &min, &sec);
GLCD_GoTo(5,3);
GLCD_WriteString(time, Font_System7x8);
}

这是我的职责

char display_time(char *t[], char *h, char *m, char *s)
{

*t[0]=*h/10+48;
*t[1]=*h%10+48;
*t[3]=*m/10+48;
*t[4]=*m%10+48;
*t[6]=*s/10+48;
*t[7]=*s%10+48;


}

一切都编译正常,但我的时间没有得到更新,只显示初始化值。

最佳答案

  • 请编译带警告 (gcc -Wall -Wextra)
  • display_time 应该返回 void
  • main 应该返回 int 并采用 (int, char*[])(),但不是 (void)<
  • 您可以通过传递值(而不是指针)来提高易读性
  • 使用 '0' 而不是 48,也是为了方便
  • 你没有初始化hr。代码中的分钟和秒。
  • 你应该测试 h 是否在 0 到 24 之间等等。
  • 你应该测试 NULL 指针
  • display_time 不“显示时间”,为函数写一个更好的名字就完成了:-)

.

void display_time(char t[], int h, int m, int s) {
t[0] = h / 10 + '0';
t[1] = h % 10 + '0';
t[3] = m / 10 + '0';
t[4] = m % 10 + '0';
t[6] = s / 10 + '0';
t[7] = s % 10 + '0';
}

int main(int, char*[]) {
char time[] = "23:59:45";
int hr = 3, min = 9, sec = 42;
display_time(time, hr, min, sec);
GLCD_GoTo(5,3);
GLCD_WriteString(time, Font_System7x8);
return 0;
}

关于c - 从函数引用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8299305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com