C dilinde yazılmış birkaç dosyam var ve bunların C++ uyumlu olmasını istiyorum, bu yüzden kullandığım C başlıklarım için; C++: extern ve satır içi işlevler
#ifdef __cplusplus
extern "C" {
#endif
dosyasının başında
ve sonunda tabii
#ifdef __cplusplus
}
#endif
... arasında
. Ancak 'inline' anahtar kelimesiyle sorun yaratıyor gibi görünüyor. Benim çözümüm C++ için inline anahtar sözcüğünü kaldırmaktır, ancak C++ programlarında kötü bir etkiye sahip olabileceğini tahmin ediyorum (bu fonksiyonlara zamanın gazilyonları denir).Daha iyi bir çözüm var mı?
Her yerde birden çok tanım hatası alacaksınız. Ayrıca mantık geriye doğru: 'inline' anahtar sözcüğünü ve C89/C90'ı desteklemeyen C++. –
İyi görünüyor. Neyse, adil olmak gerekirse, tüm C ve C++ derleyicileri 'inline' anahtar sözcüğünü desteklemekle ilgileniyorum. Sorun şu ki, C++ ile "extern" eklemem gerekiyor ve satır içi anahtar kelimeyle çakışmalara neden oluyor. – Suugaku
Standart C++ 03'te, "satır içi" işlevler otomatik olarak "extern". Extern olmadan çalışır mı? –