• 締切済み

C言語とC++言語

C言語でコンパイルできC++でコンパイルできないプログラムとその逆でC++でコンパイルできC言語でコンパイルできないプログラムを教えてください。よろしく

みんなの回答

  • bulgaris
  • ベストアンサー率50% (8/16)
回答No.5

C言語しか通じない例は #include <stdlib.h> int main(){ int *a = malloc(sizeof(int)); return 0; } とか。 C++しか通じない例は struct Foo{ int hoge; }; int main(){ Foo a; return 0; }; とか。

参考URL:
http://wisdom.sakura.ne.jp/programming/cpp/cpp3.html
nickname61
質問者

お礼

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

回答No.4

#if defined(__cplusplus) C++ならこの部分がコンパイルされる #else Cならこの部分がコンパイルされる #endif …半分冗談、半分大真面目。

nickname61
質問者

お礼

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

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

何でもよいのであれば、一例ずつ書いておきます。 > C言語でコンパイルできC++でコンパイルできないプログラム int* p = "abc"; > C++でコンパイルできC言語でコンパイルできないプログラム int* p = new int(123);

nickname61
質問者

お礼

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

  • jgk
  • ベストアンサー率75% (104/138)
回答No.2

C99で拡張されたものでC++にないもの、 例えば可変長配列とかはC++ではコンパイルできないですね。

nickname61
質問者

お礼

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

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

たとえば C言語では関数の仮引数の型を省略することができますが、C++言語では省略できないので、関数の仮引数の型を省略しているC言語のプログラムはC++言語ではコンパイル時にエラーとなります。 C++言語ではclassというキーワードが増えていますが、これはC言語にはないキーワードなので、classを使用しているC++言語のプログラムはC言語ではコンパイル時にエラーとなります。

nickname61
質問者

お礼

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

関連するQ&A