Ich will eine Funktion im Code als Makro (#define) definieren.
Hier einmal der komplette Code:
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
/** Struktur des Vektors mit x,y,z**/
typedef struct s_vector3D
{
float x, y, z;
} vector3D;
/** Erstellt Vektor**/
vector3D makeVector(float x, float y, float z)
{
vector3D v;
v.x = x;
v.y = y;
v.z = z;
return v;
}
/**Errechnet das Kreuzprodukt von 2 Vektoren und gibt den Wert zurück**/
vector3D CROSS(vector3D a, vector3D b)
{
vector3D c = makeVector(c.x,c.y,c.z);
c.x = (a.y*b.z) - (a.z*b.y);
c.y = (a.z*b.x) - (a.x*b.z);
c.z = (a.x*b.y) - (a.y*b.x);
printf("Kreuzprodukt :%1.f %1.f %1.f",c.x,c.y,c.z);
return c;
}
int main()
{
/**Beispiel in der Main, ich erstelle 2 Vektoren , a und b **/
vector3D a = makeVector(1,2,3);
vector3D b = makeVector(2,3,4);
/** CROSS(a,b) errechnet Das Kreuzprodukt von Vektor a und Vektor b**/
/** Neuer Vektor c hat nun die Werte des Kreuzprodukts von Vektor a und Vektor b **/
vector3D c = CROSS(a,b);
}
HIER die Funktion, die ein Makro sein soll:
Code: Alles auswählen
/**Errechnet das Kreuzprodukt von 2 Vektoren und gibt den Wert zurück**/
vector3D CROSS(vector3D a, vector3D b)
{
vector3D c = makeVector(c.x,c.y,c.z);
c.x = (a.y*b.z) - (a.z*b.y);
c.y = (a.z*b.x) - (a.x*b.z);
c.z = (a.x*b.y) - (a.y*b.x);
printf("Kreuzprodukt :%1.f %1.f %1.f",c.x,c.y,c.z);
return c;
}
Sobald ich versuche die Funktion als Makro zu definieren klappt nix mehr und ich bekomme die unterschiedlichsten Fehler.
Wie kann man diese Funktion als Makro definieren?
Tausend Dank und Liebe Grüße. Schön das es euch gibt!