Using double-parentheses is a gcc-ism for kludging round "assignment might be mistyped conditional" warnings.
It's better to test `(NULL != (assignment))`, which is portably immune to this kind of warning by actually saying what you're really testing.
Adding a syntactic kludge in order to leave the non-boolean expression being treated as boolean via an implicit comparison is silly.  Just make the implicit comparison explicit.