I see some code in C++ using extern "C" at the beginning of the file like this:
#ifdef __cplusplus 
extern "C" {} 
#endif
What does this mean? How does it work?
I see some code in C++ using extern "C" at the beginning of the file like this:
#ifdef __cplusplus 
extern "C" {} 
#endif
What does this mean? How does it work?
 
    
    It is used to inform the compiler to disable C++ name mangling for the functions defined within the braces. http://en.wikipedia.org/wiki/Name_mangling
 
    
    It's probably not like that, but more like:
#ifdef __cplusplus 
extern "C" {
#endif
//some includes or declarations
#ifdef __cplusplus 
}
#endif
It tells the compiler to use C name mangling for whatever is declared inside the directives.
The way you have it now:
#ifdef __cplusplus 
extern "C" {} 
#endif
is just dead code.
 
    
    It specifies a linkage specification.
It tells the linker how to link the code.    
It is useful when you want to mix C and C++ code.
 
    
     
    
    Extern "C" -  notify the compiler,that the noted function is compiled in C style.
