C语言 打印函数不能正常工作与直接字符串,但工作与字符串通过变量?



我正在用C写一个内核,我刚刚在打印函数上做了一些工作。但问题是,它将打印作为字符串传递给变量的参数,而不是直接给定的字符串。

char str[] = "foo";
print(str);    //works properly
print("bar");  //doesn't print anything

我猜这与直接放入参数时字符串的设置方式有关,但我对c很陌生,如果有人能给我解释一下,那就太好了。

下面是print函数的代码:
int print(char str[]) {
//scroll if needed
if (vidpointer > vidmem + 3840) {
scroll();
vidpointer -= 160;
}
//for each character in the string, write it to video memory, along with color code
for (int i = 0; i < strlen(str); i++) {
vidpointer = writebyte(vidpointer, str[i]);
vidpointer = writebyte(vidpointer, printcolor);
}
//create newline, if printnewl is equal to 1
if (printnewl == 1) {
int length = strlen(str);
while (length > 80) length -= 80;
vidpointer += 160 - (length * 2);
}
return 0;
}

你应该重新安装你的编译器,我也有这个问题

最新更新