- 締切済み
C言語とC++言語
C言語でコンパイルできC++でコンパイルできないプログラムとその逆でC++でコンパイルできC言語でコンパイルできないプログラムを教えてください。よろしく
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- bulgaris
- ベストアンサー率50% (8/16)
C言語しか通じない例は #include <stdlib.h> int main(){ int *a = malloc(sizeof(int)); return 0; } とか。 C++しか通じない例は struct Foo{ int hoge; }; int main(){ Foo a; return 0; }; とか。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
#if defined(__cplusplus) C++ならこの部分がコンパイルされる #else Cならこの部分がコンパイルされる #endif …半分冗談、半分大真面目。
お礼
教えていただきありがとうございました。参考にさせていただきます
- jacta
- ベストアンサー率26% (845/3158)
何でもよいのであれば、一例ずつ書いておきます。 > C言語でコンパイルできC++でコンパイルできないプログラム int* p = "abc"; > C++でコンパイルできC言語でコンパイルできないプログラム int* p = new int(123);
お礼
教えていただきありがとうございました。参考にさせていただきます
- jgk
- ベストアンサー率75% (104/138)
C99で拡張されたものでC++にないもの、 例えば可変長配列とかはC++ではコンパイルできないですね。
お礼
教えていただきありがとうございました。参考にさせていただきます
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
たとえば C言語では関数の仮引数の型を省略することができますが、C++言語では省略できないので、関数の仮引数の型を省略しているC言語のプログラムはC++言語ではコンパイル時にエラーとなります。 C++言語ではclassというキーワードが増えていますが、これはC言語にはないキーワードなので、classを使用しているC++言語のプログラムはC言語ではコンパイル時にエラーとなります。
お礼
教えていただきありがとうございました。参考にさせていただきます
お礼
教えていただきありがとうございました。参考にさせていただきます