Makefile it

Saturday, July 19, 2008

Errorcete-DC

Un acertijo del C que me ha dado un pequeño quebradero de cabeza. Un alumno me decía que esto no funcionaba:
typedef int vertex[3];
vertex pt[8] = { (0, 0, 0), (0, 1, 0), (1, 0, 0), (1, 1, 0), (0, 0, 1), (0, 1, 1), (1, 0, 1), (1, 1, 1) };
...
int quad(int v1, int v2, int v3, int v4) {
glBegin(GL_QUADS);
glVertex3iv(pt[v1]);
glVertex3iv(pt[v2]);
glVertex3iv(pt[v3]);
glVertex3iv(pt[v4]);
glEnd();
}
...
Y tenía razón, porque el vector "pt" estaba mal inicializado. Debía de tener { } en vez de ( ) !!!!!

(0, 0, 0) es lo mismo que escribir 0 (la coma es un operador!!!!! y los paréntesis hacen que no dé error)
int x = 0, 1, 2; // Da error, no compila
int y = (0, 1, 2); // Compila bien e inicializa "y" con un dos !!!!!
Vayan bien las vacaciones a quién las esté disfrutando!!!

0 Comments:

Post a Comment

<< Home