Sono nel bel mezzo della creazione di un piccolo gioco basato su console per il nostro compito di programmazione in classe C e ho deciso di renderlo più presentabile e unico aggiungendo colori di testo e sfondi testo.Cosa significa questa espressione? (Funzione SetConsoleTextAttribute in C)
Mentre ero sulla mia ricerca alla ricerca di una soluzione, ho trovato questa comoda funzione che farà solo il modo che volevo per il mio progetto, ma il problema è che c'è questa parte che non capisco:
Dove, BackC
e ForgC
hanno numeri interi e il tipo di dati WORD
è solo un typedef per un int breve senza segno. Nello specifico, ciò che non capisco è la parte ((BackC & 0x0F) << 4) + (ForgC & 0x0F)
. Qualcuno mi può aiutare con questo? So che posso semplicemente usare la funzione ma voglio davvero sapere come funziona la funzione ... Grazie!
Ecco il codice sorgente (colorExample.c)
#include <windows.h>
#include <stdio.h>
void SetColorAndBackground(int ForgC, int BackC);
int main()
{
SetColorAndBackground(10,1); //color value range 0 up-to 256
printf("what is text background color \n");
SetColorAndBackground(11,1);
printf("how about this?");
getch();
return 0;
}
void SetColorAndBackground(int ForgC, int BackC)
{
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
return;
}
http://en.wikipedia.org/wiki/Bitwise_operation –