Definition: typedef struct s_point {double x, y, z;} point_t;
Code: if(l1[i].y < coord_buf){ coord_buf=l1[i].y; stelle=i; }
So und jetzt will ich das je nach Parameter "n" (völlig offen was und wie) mal für x, y, oder z machen.
Geht das irgendwie einfach oder muß man immer mit if / case arbeiten?
Wie wäre es mit pointer-Schubsereien? Also: falls n zwischen 0 und 2 dann: if( *( &(l1[i].x) + (n*sizeof(double)) ) < coord_buf){ ...
Das Ganze müsste meiner Meinung nach auch ohne das "&(...) gehen, also quasi nur l1[i] an die Stelle der Klammer.
Clemens
_____________________________________________________________________ Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! http://smartsurfer.web.de/?mc=100071&distributionid=000000000066
Clemens Passeck schrieb:
Wie wäre es mit pointer-Schubsereien? Also: falls n zwischen 0 und 2 dann: if( *( &(l1[i].x) + (n*sizeof(double)) ) < coord_buf){
unter elegant verstehe ich aber was anderes.
...
Das Ganze müsste meiner Meinung nach auch ohne das "&(...) gehen, also quasi nur l1[i] an die Stelle der Klammer.
Du meinst doch sicherlich:
if ( (*(((double*) l1) + i+n)) < coord_buf) {
Welche von den klammern jetzt redundadnt sind, ist mir egal.
Tobias
lug-dd@mailman.schlittermann.de