餃子を食べるとき、何をつけますか?

皆さんこんにちは。

C++で書かれたhppファイルを、
Cのプログラムの冒頭にてincludeしたいなと
思っているのですが、
そうゆう事って、ざっくり可能なものでしょうか?

キーワードが悪いのか、
すっきりと、方針が見つけることができませんでした。
CでC++ファイルのincludeが可能な場合、
大体の方針など教えていただけるとありがたいです。

A 回答 (4件)

C++でCのincludeはできますが(extern "C"が必要なことが多いですが)逆は一般に無理でしょう。

    • good
    • 0
この回答へのお礼

php504さん

ご回答ありがとうございました。
やはり、ダメなんですね。。。

C++で書かれたファイル(hpp)を、
Cのソース内で使うとしたら、
include以外では、どんな策があるのでしょうか?

可能でしたら、方針などざっくり聞かせてもらえると嬉しいです。
お手数おかけしますが、宜しくお願い致します。

お礼日時:2009/12/07 14:43

> そうゆう事って、ざっくり可能なものでしょうか?



基本的には無理です。
C/C++のヘッダファイルを兼用するには、十分考えて作らなければなりません。
CのものをC++でインクルードした場合も、多くはリンクエラーが発生します。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考にさせていただきました。
今後における勉強にもなりました。

お礼日時:2009/12/07 18:28

includeするだけなら可能です。


でも、コンパイルできるかどうかは、また別です。

hppの中身が、単純な#defineの羅列程度なら、コンパイル可能だと思いますが、多くの場合はコンパイルできないんじゃないかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました!
やはり、やはり無理ぽいですね。。
参考になりました!

お礼日時:2009/12/07 18:28

C++ でコンパイルするときにはシンボル __cplusplus が定義されますから, #ifdef あたりで切り分けることは可能です.


つまり
#ifdef __cplusplus
ここは C++ でコンパイルされる
#else
ここは C でコンパイルされる
#endif
です. とはいえ, #1 でも言われているように, 一般論として「C のヘッダを C++ で #include する」のは簡単ですが逆は (C++ としての機能を使っていると) 難しいんじゃないかなぁ.
    • good
    • 0
この回答へのお礼

Tacosanさん

ありがとうございました!
参考にさせていただきました。

お礼日時:2009/12/07 18:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報