ファルケン教授の答えにさらに
tcc file.c
<-- C でコンパイルされます
tcc file.cpp
<-- cpp でコンパイルされます
tcc file.ext .ext が cpp 以外の場合、C でコンパイルされます --P が使用されない限り、cpp が使用されてコンパイルされます。
VM で TCC を実行していますが、ここからコピー/貼り付けできません。しかし、あなたのテストでは私の結果と同じ結果が得られるはずです。そうでない場合は、おそらく私が間違っている可能性がありますが、CPP ではなく C で機能するこのコードと、C ではなく CPP で機能するコードを指定して、自分でテストできます。その後、実験できます。拡張子を変更し、-P を使用するかどうか。
次のコードは C でのみ機能します
conly.c
(C++ の専門家は、次の例について教えてくれました。C では void* -> T* 変換が許可されているため、C++ ではなく C で機能します。C++ は許可されていません)
#include <stdio.h>
#include <stdlib.h>
void main() {int *x=malloc(4);}
次のコードは C++ でのみ機能します
cpponly.cpp
#include <stdio.h>
void main() {
int a=9;
int& b=a;
printf("b=%d",b);
}