c - GCC __atomic functions: _n suffix vs explicit width, e.g. _4 -
the gcc __atomic api has multiple functions ending in _n, e.g.
__atomic_load_n __atomic_store_n the compiler supports intrinsitcs n replaced 1, 2, 4, 8 or 16 (which have infer exist docs - imo docs pretty hazy __atomics , should improved!). when explicit number used tells compiler width of data atomic operation should operate on. when _n used i'm presuming compiler infers width type passed if can, or errors otherwise.
i checked last statement passing void* __atomic_load_n , complained, wasn't big surprise.
so questions are:
- is have said correct?
- is there reason not use
_nversion except in case have opaque pointer , need explicitly tell compiler how wide it's pointee is? - are there other subtleties i'm missing stuff?
thanks
Comments
Post a Comment