Is extern “C” only required on the function declaration?

The ‘extern “C”‘ should not be required on the function defintion as long as the declaration has it and is already seen in the compilation of the definition. The standard specifically states (7.5/5 Linkage specifications): A function can be declared without a linkage specification after an explicit linkage specification has been seen; the linkage explicitly …

Read more

What’s the difference between static inline, extern inline and a normal inline function?

A function definition with static inline defines an inline function with internal linkage. Such function works “as expected” from the “usual” properties of these qualifiers: static gives it internal linkage and inline makes it inline. So, this function is “local” to a translation unit and inline in it. A function definition with just inline defines …

Read more