how to implement this ?
horseriver
horserivers@gmail.com
Mon Jan 7 15:44:00 GMT 2013
On Mon, Jan 07, 2013 at 03:29:59PM +0000, Andrew Haley wrote:
> On 01/07/2013 05:39 AM, horseriver wrote:
> > On Mon, Jan 07, 2013 at 03:09:31PM +0000, Andrew Haley wrote:
> >> On 01/07/2013 05:11 AM, horseriver wrote:
> >>> On Mon, Jan 07, 2013 at 02:31:19PM +0000, Andrew Haley wrote:
> >>>> On 01/07/2013 04:46 AM, horseriver wrote:
> >>>>> hi:
> >>>>>
> >>>>> how to implement this assignment by MACRO?
> >>>>> int a,b,c ;
> >>>>>
> >>>>> ((a==0)?b:c)=8;
> >>>>
> >>>> This is for help with GCC, not general C coding help.
> >>>>
> >>>> *((a==0) ? &b : &c) = 8;
> >>>>
> >>>> But this is really horrible code. I wouldn't do it.
> >>>
> >>> thans!
> >>>
> >>> why gcc report that error ?
> >>>
> >>> gcc can translate " ((a==0)?b:c)=8 " into if-else sentence .
> >>>
> >>> wht is the reason ï¼
> >>
> >> Please supply the test case and the error message.
> >>
> >
> > ok
> >
> > here is this code :
> >
> > #define INPUT_KEYCODE(dev, scancode) ((dev->keycodesize == 1) ? ((u8*)dev->keycode)[scancode] : \
> > ((dev->keycodesize == 2) ? ((u16*)dev->keycode)[scancode] : (((u32*)dev->keycode)[scancode])))
> >
> > and here is the callee code :
> >
> > unsigned int keycode ;
> >
> > INPUT_KEYCODE(dev, scancode) = keycode;
> >
> > dev is a struct , scancode is a unsigned int
> >
> > and gcc report error is :
> >
> > error: lvalue required as left operand of assignment
>
> That is the wrong error.
>
> I need to see the whole of the code that resulted in the error that was
> "gcc can translate " ((a==0)?b:c)=8 " into if-else sentence ."
gcc can translate " ((a==0)?b:c)=8 " into if-else sentence
is my idea ,not a reported error
thanks!
>
More information about the Gcc-help
mailing list