Berkeley CSUA MOTD:Entry 32265
Berkeley CSUA MOTD
 
WIKI | FAQ | Tech FAQ
http://csua.com/feed/
2025/07/09 [General] UID:1000 Activity:popular
7/9     

2004/7/13-14 [Computer/SW/Languages/C_Cplusplus] UID:32265 Activity:high
7/12    Someone please explain the following?
        ((size_t )& ((SomeVar *)0)->Field);
        \_ It's a hideous abuse of C++ syntax and results in undefined
           behavior.  It appears to be an attempt to find out the offset of the
           member "Field" in the class/struct type SomeVar.  Ow, ow ow.
           \_ This is actually not undefined, in C or C++.  It is hideous,
              though; it would be nicer to #include <stddef.h> and just use
              though; it would be nicer to #include  and just use
              offsetof(SomeVar, Field).  In C++, you might also be able to
              use a pointer-to-member (&SomeVar::Field), depending on what
              you're trying to do.  --mconst
              \_ You're saying that dereferencing a null pointer is not
                 undefined? -emarkp
                 \_ Right.  In C99, you're allowed to dereference a null
                    pointer as long as all you do is take the address of
                    it afterwards; see 6.5.3.2p3.  In C++, it's not very
                    well stated in the standard, but the current view of
                    the committee is that you're allowed to do anything
                    with a dereferenced null pointer as long as you don't
                    trigger lvalue-to-rvalue conversion or try to write
                    to the memory; see http://csua.org/u/86c  --mconst
                    \_ Fascinating.  I usually follow Herb Sutter's articles to
                       keep me up-to-date.  Thanks for the info.  I just wish
                       they'd add a typeof operator and ditch the nonsensical
                       syntax of calling a static member function though an
                       instance (requiring T::func() instead of allowing T x;
                       x.func(); ). -emarkp
                    \_ Although 6.5.3.2 states that &*E is legal, it does not
                       address the issue in the original question, which
                       involves an additional structure member access.  I
                       believe that it is implementation-dependent.  It is
                       the compiler vendor's responsibility to provide an
                       offsetof macro in stddef.h that works with their own
                       implementation, but it need not be portable. --jameslin
                       \_ You're right, I take it back -- the original
                          statement is actually undefined in C99.  It works
                          for arrays, but not structs.  (It is still valid
                          C++, although it's not guaranteed to produce the
                          value you want.)  --mconst
        \_ So shouldn't your "SomeVar" be "SomeType" for clarity? That
           confused me for a bit.
2025/07/09 [General] UID:1000 Activity:popular
7/9     

You may also be interested in these entries...
2005/4/29-5/1 [Computer/SW/Languages/Perl] UID:37411 Activity:moderate
4/29    I need help getting information off a web site.  A page presents
        information about an item in locations spread througout the page.
        Each page presents information about one item. What is a quick and
        easy way to go through several pages, capture all the information
        related to each item, and put them into a spreadsheet with a unique
        index?  I think this might be possible by scraping the screen, but how
	...
2004/11/5-7 [Computer/SW/Languages/C_Cplusplus] UID:34697 Activity:high
11/5    In C, why is the "offsetof" macro defined to be of type size_t but not
        ptrdiff_t?  Thx.
        \_ Probably because ptrdiff_t is signed and size_t isn't.
           \_ How does being signed make ptrdiff_t less portable?
              \_ Imagine a 16-bit C implementation, where int is 16 bits, long
                 is 32 bits, and the maximum object size is 64k - 1.  size_t
	...
2004/8/30-31 [Computer/SW/Languages/C_Cplusplus] UID:33228 Activity:high
8/30    Ok this is pretty basic but... is there a way to "escape" text to
        avoid it being substituted by C preprocessor macro expansion?
        \_ Wouldn't that functionality make C preprocessing as powerful as
           lisp's quasiquote/escape? -- ilyas
           \_ Squish!  Isn't it illegal to talk about lisp on the motd?!
        \_ In general no.
	...
2004/8/18-19 [Computer/SW/Languages/C_Cplusplus] UID:32995 Activity:very high
8/18    Doesn't math.h define min() and max() functions?  What should I include
        to get them?  I'd rather not do the (a < b) ? a : b thing.  Thx
        \_ No.  Many programmers define it as a new macro.  Don't know what
           gcc people do, offhand.
        \_ OS X has fmin(3)/fmax(3) which conform to ISO/IEC 9899:1999(E).
           Linux might have these too.
	...
2004/7/5 [Computer/SW/Languages/Perl] UID:31164 Activity:high
7/4     Is there something like a macro in Perl?  Couldn't find any in
        the Camel book.
        \_ If you truly need macros in Perl, you probably want AUTOLOAD.
           Of course, if you truly need macros, Perl is the wrong language for
           what you are doing.  -- ilyas
        \_ I don't know perl, but don't almost all interpreted languages have
	...
2003/8/29-2004/2/14 [Computer/SW/Languages/C_Cplusplus] UID:12260 Activity:nil
2/13    Where can I get c macro specifications? What keywords to look in
        google?
        \_ You might also want to find a good book on the specification of
           English, so you don't have to look like an ignorant tool asking
           a simple C question.
        \_ what do you want to know?  There's the C language spec that you
	...
2003/11/26-27 [Recreation/Dating, Computer/SW/OS/FreeBSD] UID:11228 Activity:kinda low 88%like:29671
11/26   what preprocessor macro is defind on FreeBSD so that I can write
        conditional code only for FreeBSD? i am using gcc...
        What about solaris? Thanks.
http://www.chnlove.com
http://www.chnlove.com/my/profile.php?womanid=GZB271199
http://www.chnlove.com/my/profile.php?womanid=GZB271195
	...
2003/11/26-27 [Computer/SW/OS/FreeBSD] UID:29671 Activity:nil 88%like:11228
11/26   what preprocessor macro is defind on FreeBSD so that I can write
        conditional code only for FreeBSD? i am using gcc...
        What about solaris? Thanks.
        \_ You can use __FreeBSD__ and __sun to tell the difference between
           FreeBSD and Solaris; you can also use __i386 and __sparc if you
           want to know the CPU type.  (These all work with Sun's C compiler
	...
2003/8/9-11 [Computer/HW/CPU] UID:29294 Activity:moderate
8/10    I just build a AMD2500+ computer and overall I'm pretty happy with
        it. However it seems to output a lot more heat than my P4. Is this
        normal?
        \_ yes AMD cpus consume more power and run hotter
        \_ I hope you're not settling for a stock fan, and you have at least
           2-3 case fans.
	...
2002/12/5 [Computer/SW/Apps] UID:26711 Activity:nil
12/4    M$ Excel qn: I have a column of 10000 numbers.  Is there any easy way
        to create another column of 1000 numbers where each number is the sum
        (or average) of the corresponding 10 numbers in the first column?  Thx.
        \_ should be do-able with the Fill-Down menuu item.
        \_ what exactly do you mean by corresponding 10 numbers?
        \_ he means you have column A which has "1,2,3,4,5,6,7,8,9,10", and
	...
1998/4/20-21 [Computer/SW/Languages/C_Cplusplus] UID:13988 Activity:high
04/20   I'd like to have C/C++ macro which would replace any comma
        seperated list of variables with an expression which uses those
        variables.  For example:
        DO_SOMETHING(a,b,c,d) becomes=> expression a,b,c,d
        DO_SOMETHING(a,b) becomes=> expression a,b
        In other words, I don't know how many variables may be used ahead
	...
Cache (68 bytes)
csua.org/u/86c -> story.news.yahoo.com/news?tmpl=story&u=/ap/20030117/ap_on_re_as/nepal_princess_2
Advanced Document Not Found The document you requested is not found.