Registriert: Di Dez 16, 2014 10:18 Beiträge: 32
Programmiersprache: C++
Hallihallo,
Ich wollte kurz wissen, ob ich in einer Struktur in GLSL auch eine Funktion/Operatoren einbauen kann. In C++ kann ich mit folgendem Code die Funktionen/Operatoren Problemlos ausführen.
Das bezieht sich aber vermutlich nur darauf, dass es in C notwendig war, Strukturtypen bei der Verwendung das Schlüsselwort "struct" voranzustellen oder ein "typedef" vor die Struktur zu machen und den Namen nach hinten zu stellen. C++ ist sonst in GLSL eher weniger vertreten.
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Nun ich denke eher das es sich auf das folgende Problem bezieht:
OpenglerF hat geschrieben:
Das bezieht sich aber vermutlich nur darauf, dass es in C notwendig war, Strukturtypen bei der Verwendung das Schlüsselwort "struct" voranzustellen oder ein "typedef" vor die Struktur zu machen und den Namen nach hinten zu stellen. C++ ist sonst in GLSL eher weniger vertreten.
Code:
//In C war entweder das...
struct MyStruct
{
//...
};
void DoSomething(struct MyStruct* StructObj)
//... oder das notwendig ...
typedefstruct
{
//...
} MyStruct;
void DoSomething(MyStruct* StructObj)
In C sind das zwei unterschiedliche Dinge. Im ersten Fall definierst du den Namen (Tag) "MyStruct" für den struct-Typen und im zweiten Fall definierst du einen Alias für einen anonymen struct-Typen. Richtig deutlich wird das erst wenn du zum Beispiel folgendes machst:
Das gilt für union, struct und enum (wobei enum ein Sonderfall ist). Interessanterweise behandeln auch heute noch die Compiler das Ganze auf unterschiedliche Weise. Richtig verrückt wird es dann bei solchen Code:
Code:
struct x {
union x * y; //kann je nach Compiler eine struct , neuer Typ oder Fehler sein
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.