Re: how to implement this ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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!
   > 


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux