RE: Is it a Bug? (void*)

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

 



Duft Markus writes:
 > Kevin P. Fleming <> wrote:
 > > Glen Beane wrote:
 > >> what about doing the conversion after incrementing the pointer?
 > >> 
 > >> void *myptr = (void*)(otherptr + 1);
 > > 
 > > Then the pointer will be incremented by sizeof(*otherptr), which could
 > > be anything and is likely to not be '1 byte'.
 > 
 > Yes, correctly... 
 > 
 > The thing is, i can cast to char*, but thats not the point. I just
 > wanted to know if it's wanted that void=1byte with gcc -> it's not
 > necessarily with other compilers. (it's not with microsoft's cl which
 > i'm porting to ;o))

5.17 Arithmetic on `void'- and Function-Pointers
================================================

In GNU C, addition and subtraction operations are supported on pointers
to `void' and on pointers to functions.  This is done by treating the
size of a `void' or of a function as 1.

 A consequence of this is that `sizeof' is also allowed on `void' and
on function types, and returns 1.

 The option `-Wpointer-arith' requests a warning if these extensions
are used.


[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