Standard C does not allow any of these (and it can't really allow ?
since it's an operator and thus a separate token). GCC (and possibly compatible compilers) allow $
but not the others. However, you could use the GNU C (GCC) extension for making a declaration for an external-linkage name that references a different underlying symbol name; this may achieve what you want, e.g. if you're trying to reference C++ symbols. I believe the syntax is something like adding __asm__("symbol_name")
to the end of the function declaration. There are some examples in the glibc headers on most Linux systems.
Alternatively, if you have dlsym
, you could use it to look up the names at runtime.