0
目前在課上,我們正在學習有關C的指針,地址和volatile。在一個示例中,我們有以下兩個函數可用於使用Altera DE2板在VGA顯示器上繪製字符。將字符傳遞給函數參數時何時使用int類型或char類型感到困惑?
對於下面的代碼,使用了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用在這裏?
我們認爲它與掩蔽有關,必須從字符中獲取二進制值......雖然我們不確定。