On 2/17/06, Mukund JB. <mukundjb@xxxxxxxxxxxxxxxxxxxxx> wrote: > Dear All, > > I have seen a macro like this in the Linux kernel sources in > include/linux/usb.h line no: 1090. > > #define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep))) > > I did not understand how it works? > I have written a small usermode program to test this. > > #define x 1 > #define y 2 > #define macro() (x = y) > main() > { > int abc = macro(); > printf("abc = %d\n",abc); > } > > This code results in a compile error. > test.c:9: error: invalid lvalue in assignment. > > Why? do u think 1=2 is a valid statement? > > Regards, > Mukund Jampala > > > -- > Kernelnewbies: Help each other learn about the Linux kernel. > Archive: http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > > -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/