背景: C プログラムの機能を拡張する動的ライブラリを C++ で実装しています。C プログラムで使用される主要な構造体の 1 つに、独自のライブラリ固有のフィールドを追加したいと考えています。現在、新しいフィールドが必要なときは、C プログラムの開発者にフィールドを追加してほしいと頼んでいます。代わりに次のことができるかどうか疑問に思っていました。
メインプログラムのヘッダファイル:
#ifdef __cplusplus
extern "C" {
#endif
/* ... */
typedef struct ImportantStruct {
/* Definitions */
} ImportantStruct
/* ... */
#ifdef __cplusplus
}
#endif
ヘッダー ファイル:
//...
class ObjectType : public ImportantStruct {
// Our extra fields
}
//...
私は2つの質問があると思います:
1) これも合法ですか?
2) C プログラムがオブジェクトの構造体部分を使用しようとすると、どのような問題が発生しますか?