'da tanımlanmış olup olmadığını kontrol edin Bu nedenle, devraldığım bazı kodlarla ilgili sorunlar yaşıyorum. Bu kod C-ortamında yalnızca iyi çalışıyordu, ancak şimdi bu kodu çağırmak için C++ kullanmam gerekiyor. başlık problem.h
içerir:Boole, karışık C/C++
#ifndef _BOOL
typedef unsigned char bool;
static const bool False = 0;
static const bool True = 1;
#endif
struct astruct
{
bool myvar;
/* and a bunch more */
}
C++ kodu olarak, ben anlamıyorum extern "C" { ... }
içinde #include "problem.h"
(wrap eğer
error C2632: 'char' followed by 'bool' is illegal
ben çünkü orada olmalı, aynı hatayı alıyorum olsun bunu derlerken ? C derlerken #ifndef _BOOL
den #endif
için blok kaldırma ve C++ olarak derleme çalıştı
) hiçbir anahtar kelime bool
olacak ve ben hataları alıyorum:
error C2061: C requires that a struct or union has at least one member
error C2061: syntax error: identifier 'bool'
ben yeniden tanımlanmasını çıkarıp sadece değişkenleri tanımlamak için bool
kullanmaya çalışırken ben sadece bir şey bulamazsa, C++ derleyicisi bool
yeniden tanımlanması hakkında şikayet nasıl çalıştığını anlamak, henüz yok .
Her türlü yardım büyük beğeni topluyor.
Not. "C bağlantısı ile derleme" anlamına gelir. İçindeki kod hala C++, sadece C olarak bağlanamayan hiçbir şeyi tanımlamaya izin verilmiyor. –