C と C++ には多くの違いがあり、すべての有効な C コードが有効な C++ コードであるとは限りません。
(「有効」とは、動作が定義された標準コードを意味します。つまり、実装固有/未定義/などではありません。)
C と C++ の両方で有効なコードが、各言語の標準コンパイラでコンパイルされたときに異なる動作を生成するシナリオはありますか?
それを合理的/有用な比較にするために(質問の明らかな抜け穴を見つけようとするのではなく、実際に役立つことを学ぼうとしています)、次のように仮定しましょう。
- プリプロセッサに関連するものは何もありません (つまり
#ifdef __cplusplus
、プラグマなどによるハックはありません)。 - 実装定義は両方の言語で同じです (例: 数値制限など)。
- 各標準のかなり最近のバージョンを比較しています (たとえば、C++98 と C90 以降など)
。バージョンが重要な場合は、それぞれのどのバージョンが異なる動作を生成するかについて言及してください。