Alors, je faisais des trucs avec solaris 11 et sunstudio etc... et je suis tombe sur une erreur bizarre en compilant un joli desktop convivial etc..

en recuperant la sortie du preprocesseur j arrive a des macros imbriques les unes dans les autres et dont le statement final ressemble a la simplification faite en dessous :

#include <stdio.h>
#include <unistd.h>

#include <string.h>

void inc(int * value)
{
    (*value)++;
}

int main(int argc, char ** argv)
{
    char * path = (char *) strdup("proutprout");
    char * toto =  strdup ("glopglop");
    int i = 0;

    printf("i: %d path: %s\n", i, path);
    path = ( inc(&i), toto );
    printf("i: %d path: %s\n", i, path);
    return 0;
}

qqun peut m'expliquer la ligne avec path = ( , ) et me dire POURQUOI ca marche et D OU CA VIENT cette syntaxe ?!?

a l'exec :

$ ./te 
i: 0 path: proutprout
i: 1 path: glopglop

pkoi ca marche ?!?!?! en tout cas sunstudio 11 il aime TROP PAS cette syntaxe, a bon entendeur et si qqun a des reponses, je suis prenneur.

++