【问题标题】:Confused about when to use int type or char type when passing a character into a function argument?对将字符传递给函数参数时何时使用 int 类型或 char 类型感到困惑?
【发布时间】:2014-03-31 05:12:09
【问题描述】:

目前在课堂上,我们正在学习 C 的指针、地址和易失性。在一个示例中,我们有以下两个函数,可用于使用 Altera DE2 板将字符绘制到 VGA 监视器上。

对于以下代码,使用了 int 字符,但我的同行和我认为它应该是 char 字符,因为我们将一个字符传递给函数参数。

void drawChar( int x, int y, int character )
{
    volatile unsigned char *pChar;
    pChar = getCharAddr(x,y);
    *pChar = ( character & 0x7f );
}


unsigned char *getCharAddr( int x, int y )
{
    y = max(0,min(MAX_Y_CHARS-1,y));
    x = max(0,min(MAX_X_CHARS-1,x));
    return (unsigned char *)(ADDR_CHARBUF + (((y<<MAX_X_CHAR_BITS)|(x))<<0));
}

这里是使用函数drawChar的示例代码:

drawChar( x, y, ‘D’ ); // draws ‘D’ at <x,y>!

谁能解释这里为什么使用 int ?

我们认为这与掩码有关,并且必须使二进制值脱离字符...虽然我们不确定。

【问题讨论】:

    标签: c pointers character


    【解决方案1】:

    如果您将字符类型替换为 char,您将收到相同的结果。 char、int、short 等都是整数类型。编写函数的人将是唯一可以告诉您为什么他们在这种特殊情况下选择 int 的人,但您和您的同行是正确的,一般来说最好使用 char,因为它代表了数据的目的。在幕后,该 char 可能最终会被提升为 int,具体取决于平台。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多