C++ uses linkage directives to indicate the language used for any non-C++ function.
A linkage directive can have one of two forms: single or compound. Linkage directives may not appear inside a class or function definition. The same linkage directive must appear on every declaration of a function.
As an example, the following declarations shows how some of the C functions in the cstring header might be declared:
```
#include <iostream>
using namespace std;
extern "C" size_t strlen(const char *);
extern "C" {
char *strcat(char*, const char*);
}
int main()
{
string s1 = "Hello,", s2=" World!";
cout << strlen(s1.c_str()) << endl;
cout << strcat((char*)s1.c_str(), s2.c_str()) << endl;
return 0;
}
```