кто-нибудь может сказать мне, где я могу найти заголовок для __sync_add_and_fetch
встроенная функция
без заголовка, как мы можем скомпилировать код.
Это встроенная функция, означающая, что компилятор ЗНАЕТ эту функцию, и у нее нет (чтобы иметь) заголовочный файл.
В clang это часть Builtins.def здесь:
https://github.com/llvm-mirror/clang/blob/master/include/clang/Basic/Builtins.def#L524
и кодеген здесь:
https://github.com/llvm-mirror/clang/blob/master/lib/CodeGen/CGBuiltin.cpp#L1204
Другие компиляторы будут иметь некоторые сходные понятия при объявлении «встроенных функций».
Конечно, не все компиляторы поддерживают атомарные встроенные функции, поэтому, если вы видите сообщение об ошибке «__sync_add_and_fetch не является функцией», это может быть связано с тем, что компилятор не имеет этой функции — его можно вызвать как-то еще в этом компиляторе, или он может просто не существовать, в зависимости от того, какой это компилятор.
Других решений пока нет …