rozumiem że idfef _cplusplus sprawdzi czy był używany kompilator C++ natoamist dlaczego przy extern "C" jest nawias "{" a potem zaraz endif i definicje? po co jest ten endif #programowanie #c #cpp
@agsbajahs w skrócie, skoro już ogarnąłeś, zapewnia to możliwość użycia zarówno w c i cpp. W przypadku gdy zdefiniowane jest cpp, potrzebujesz "extern c" by nazwy nie zostały...powiedzmy zanonimizowane (brak mi słowa na "mangled"). C natomiast nie zna "extern", stąd ifdef.
@Oo-oO: @agsbajahs: C ma inne znaczenie słowa extern - obiecujesz kompilatorowi że w innej jednostce kompilacji jest symbol o danej definicji np extern void wykop(int plusy);, co do reszty to zgoda.
#ifdef __cplusplus
extern "C" {
#endif
/* Definicje */
#ifdef _cplusplus
}
#endif
rozumiem że idfef _cplusplus sprawdzi czy był używany kompilator C++ natoamist dlaczego przy extern "C" jest nawias "{" a potem zaraz endif i definicje? po co jest ten endif
#programowanie #c #cpp
/* Definicje */
albo:
extern "C" {
/* Definicje */
}
w zależności od tego, czy zdefiniowany jest symbol
__cplusplus
.@Oo-oO: @agsbajahs: C ma inne znaczenie słowa extern - obiecujesz kompilatorowi że w innej jednostce kompilacji jest symbol o danej definicji np
extern void wykop(int plusy);
, co do reszty to zgoda.