如何使用 Const Char* 打印 ASCII 扩展字符?
我有一个在屏幕上打印字符的函数,如下所示:
void print(int colour, int y, int x, const char *string)
{
volatile char *video=(volatile char*)0xB8000 + y*160 + x*2;
while(*string != 0)
{
*video=*string;
string++;
video++;
*video=colour;
video++;
}
}
我想打印字符 十进制的 254,但我需要使用存储在 const char*
上。我无法尝试 print(0x0F, 0, 0, 0xFE);
,因为这会在没有强制转换的情况下引发指针错误,那么我该怎么做呢?
I have a function to print characters on the screen that is like this:
void print(int colour, int y, int x, const char *string)
{
volatile char *video=(volatile char*)0xB8000 + y*160 + x*2;
while(*string != 0)
{
*video=*string;
string++;
video++;
*video=colour;
video++;
}
}
And I want to print the character 254 in decimal, but I need to use stored on a const char*
. I can't try print(0x0F, 0, 0, 0xFE);
, because this trows a error of pointer without cast, then how can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 C 的十六进制表示法将字符嵌入字符串中:
正如人们所指出的,您可能想要稍微美化一下代码,也许可以通过为 VGA 帧缓冲区基地址。
Embed the character in the string using C's hex notation:
As folks have pointed out, you might want to pretty up the code a bit, perhaps by adding a symbolic name for the VGA framebuffer base address.
这是题外话,对此的回忆,但是挖掘代码我发现了这个:
希望这有帮助,
此致,
汤姆.
This is off-topic, memories of this, but digging up the code I found this:
Hope this helps,
Best regards,
Tom.