Często napotykam pliki nagłówkowe C zawierające extern "C"
,
, ale nie zawierają żadnych rzeczywistych funkcji. Na przykład:Czy istnieje jakikolwiek powód używania zewnętrznego "C" w nagłówkach bez metod?
/* 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 */
wiem, że extern "C"
zapobiega nazwa przekręcona o funkcjach, ale to również zapobiec przed innymi interfejsu komunikacyjnego zagadnień dotyczących deklaracji zmiennych i typu?
Czy użycie powyższego przykładu extern "C"
jest pozbawione znaczenia pod względem zgodności?
'extern" C "' nie "zapobiega" wymieszaniu nazw. Informuje kompilator, między innymi, o używaniu manglingu w stylu C. –