我經常遇到C頭文件,其中包含extern "C"
後衛,
但不包含任何實際功能。例如:是否有任何理由在沒有方法的頭文件中使用extern「C」?
/* b_ptrdiff.h - base type ptrdiff_t definition header */
#ifndef __INCb_ptrdiff_th
#define __INCb_ptrdiff_th
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _PTRDIFF_T
#define _PTRDIFF_T
typedef long ptrdiff_t;
#endif /* _PTRDIFF_T */
#ifdef __cplusplus
}
#endif
#endif /* __INCb_ptrdiff_th */
我知道extern "C"
防止名字重整的功能,但它也防止對可變和類型聲明其他接口的問題?
在上面的例子中使用extern "C"
在結果兼容性方面沒有意義嗎?
'extern「C」'不會「阻止」名稱變形。它告訴編譯器,除其他外,使用C風格的名稱修改。 –