There are two modifier.
says that the function is NOT necessary "kazaviti" in the manner of C++ coding in behalf of its parameters like
h(int) → _Z1hi
. Is used to access C++ functions that are compiled with another compiler (Pascal, C,...) and also for all sorts of functions, we need to give a fixed name, for example, DLL functions.
. It is necessary to access the DLL functions: the linker will take the functions directly from the DLL without creating it *.lib or *.a (at least MinGW works). Languages, strongly attached to a specific OS (e.g., Delphi) can create your keywords to access, for example, DLL or COM.
procedure DoSomething(x : integer); cdecl; external 'something.dll';
Destandartization si forced to rely upon keywords that start with two underscores.