linkage directive

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;  
}
```