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


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.


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