La curiosidad es completamente valida ya que la diferencia entre gcc y g++ es muy sutil. La respuesta queda en el resultado. El g++ puede compilar codigo %100 C, pero el gcc no puede compilar codigo de C++ porque no sabe como. Cuando compilas codigo C en g++ el resultado es codigo C++ aunque no venga incluido alguna funcion de C++ por el simple hecho de ser compilado mediante el g++.
El codigo compilado en %100 C es mas pequeño que el mismo codigo compilado en C++.
Usando de ejemplo este codigo en C:
Código:
#include <stdio.h>
int main()
{
printf("Hola Mundo!");
return 0;
}
Compilado con gcc (gcc -o holac hola_mundo.c), produce un binario de 9152 bytes.
El mismo codigo compilado con g++ (g++ -o holac2 hola_mundo.c), produce un binario de 9277 bytes.
Cambiando el codigo a C++:
Código:
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
return 0;
}
Compilando con el comando g++ (g++ -o holacc hola_mundo.cc) produce un binario de 9793 bytes, y hace exactamente lo mismo que la version escrita en C.
La razon es que al compilar el codigo en C++ el compilador inserta mas funciones y hace mas decisiones durante la compilacion que con el C puro.