Ehi buon 2012 a tutti voi altri!
Allora, ho da poco iniziato il C e sto provando a creare da me i rudimenti di una libreria grafica.
Diciamo pure che lo sto facendo per esercizio, più che per il grezzo risultato che otterrò
Questo è l'header graphlib.h:
#include <stdio.h>
#define LENROW 80
#define LENCOL 25
/*Pulisce il pannello grafico e lo prepara per una nuova elaborazione*/
void erase(int matrice[LENCOL][LENROW])
{
int i=0;
int j=0;
for (j; j<LENCOL; j++)
for (i; i<LENROW; i++)
matrice[j][i] = 0;
}
/*Stampa il pannello grafico a video*/
void press(int matrice[LENCOL][LENROW])
{
int i=0;
int j=0;
for (j; j<LENCOL; j++)
{
for (i; i<LENROW; i++)
{
printf("%c", matrice[j][i]);
}
printf("\n");
}
}
/* Crea un rettangolo sul pannello */
void draw_rect(int matrice[LENCOL][LENROW], int x, int y, int length, int height)
{
int X, Y;
((x+length) < LENROW)?(X=x+length):(X=LENROW); /*Gestisce l'overflow nel caso in cui le misure escano dal pannello grafico 80x25 */
((y+height) < LENCOL)?(Y=y+height):(Y=LENCOL);
for (y; y<Y; y++)
for (x; x<X; x++)
matrice[y][x] = '*';
}
Per adesso ho implementato solo il rettangolo pieno
Questo invece è il sorgente .c:
#include <stdio.h>
#include <stdlib.h>
#include <graphlib.h>
int main() {
int pad[LENCOL][LENROW];
erase(pad[LENCOL][LENROW]);
draw_rect(pad[LENCOL][LENROW], 0, 0, 4, 3);
press(pad[LENCOL][LENROW]);
system("PAUSE");
return 0;
}
Gli errori che mi dà sono:
"In function 'main': [Warning] passing arg 1 of `erase' makes pointer from integer without a cast"
"In function 'main': [Warning] passing arg 1 of `press' makes pointer from integer without a cast"
"In function 'main': [Warning] passing arg 1 of `draw_rect' makes pointer from integer without a cast".
Mmmm...che cos'è questa storia? Io non ho creato nessun pointer