A macro with "no body" (no replacement list) simply has empty body. This means that every "invocation" of that macro in the code will be replaced with an empty sequence of tokens, i.e. the references to that macro will simply disappear without any effect.
In your above example the authors of the code simply wanted all invocations of __success(epxr)
to just disappear from the code under certain circumstances (i.e. if __success
was not defined previously). That's all there is to it.
The same is true for __nvapi_success
macro. I.e. whether your macro has arguments or not does not make any difference in this regard.
Under some other circumstances this macro might get defined differently, with non-empty replacement list. If you look through the rest of the source code you might discover other places that define __success(epxr)
differently and conditions, under which it happens.