This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: parenthesis while addressing struct member


Carlos O'Donell wrote:
On Sat, Jul 26, 2014 at 11:13 AM, JoÃl KrÃhemann <weedlight@gmail.com> wrote:
I experienced problems as not using parenthesis with addressing operator.
Does someone know what's correct?

pthread_mutex_lock.c

             int e = INTERNAL_SYSCALL (futex, __err, 4,
&mutex->__data.__lock,
         __lll_private_flag (FUTEX_LOCK_PI,
private), 1, 0);

ags_thread-posix.c

              pthread_mutex_init(&(thread->timelock_mutex), NULL);
They are both the same.

The -> and . have precedence over & with left-to-right associativity.

Therefore &(struct->member) is equivalent to &struct->member.

Only () can change this e.g. *(ptr[x]) is not equivalent (*ptr)[x].

Cheers,
Carlos.

Further I really believe it should rather be of form like:

&(mutex->__data.__lock)

is it still the same?



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]