A template name has linkage (3.5). A non-member function template can have internal linkage; any other template name shall have external linkage. Entities generat
extern "C" is used to change symbol name of C++ function in order to use them from a C program.
In C++, function prototype is "coded" in symbol name, this is a requirement for overloading. But in C, you don't have a such feature.
extern "C" allow to call C++ function from a C program.
extern "C" is not what you are looking for.
Could you please explain what do you want to do ?