我经常遇到包含extern "C"
守卫
但不包含任何实际函数的 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"
就结果兼容性而言,上面示例中的使用是否毫无意义?