Tamanho do programa em C é muito menor que o mesmo feito em C++ ?

Ola pessoal.

As vezes que tentei transformar uma função feita da forma tradicional (em C) em C++, ou orientar ela a objeto, fiquei com um resultado de tamanho muito maior, claro que as vantagens em se programar orientado a objeto, são indiscutiveis, porem gostaria de saber se alguem tem alguma referencia a isso, se realmente o programa fica maior e pq isso acontece, não deveria ser o contrario ?

[]´s

Jota

Exibições: 418

Responder esta

Respostas a este tópico

Ninguem sabe nada a respeito do tamanho de um programa orientado ser maior que da forma tradicional ?

Para comparar peguei um exemplo oficial feito em C++ do Blink Led http://playground.arduino.cc/uploads/Code/LED13.zip e comparei com o exemplo tradicional da IDE do Arduino Basic Blink e deu uma diferença de quase 30% a mais no tamanho de codigo compilado pela IDE.

É assim mesmo, se usamos orientação a objeto, ao invés de diminuir o codigo, estamos aumentando ?

Alguem ai manja de C++ ?

[]´s

Jota

Você tem que saber o que é orientação a objetos, ex: o tamanho do programa pode ser ligado direta ou indiretamente ao tamanho de seu source e resources. O uso em si é que traz a diferença em tempo de carregamento, overload de memória, reuso de código, isso é o mínimo que estou identificando, mas, se você tem algo simples em C(Procedural) e você vai transformar isso em C++ dependendo das bibliotecas formas de compilação, você pode ter um programa talvez até 200% ou maior, sua pergunta foi um pouco abstrata, mas espero ter conseguido entender e responder.

Sebastião, eu sei o que é orientação a objeto.

Talvez eu não tenha explicado direito sobre qual tamanho realmente estamos falando, achei que tinha ficado subentendido quando falei "do tamanho do codigo compilado pela IDE".

Realmente não é o tamanho do codigo fonte e sim o tamanho final que este codigo gera e o que realmente é enviado para o Arduino.

Basta compilar o exemplo do link acima e ver o valor em bytes que é gerado e enviado para o Uno e comprar com o exemplo blink tradicional.

Bom é desse tamanho final que estamos falando, necessariamente o tamanho de um C++ vai ser maior que o simples C ?

[]´s

Jota

Basicamente sim, como lembrado pela questões de bibliotecas, argumentos de compilação, e nível de linguagem. a IDE também pode ter seu papel no produto final, e cada linguagem foi criado para um objetivo final, se você quer usar algo para arduino o melhor uso é o C, pq para entendermos que tudo no final vai ser transformado em assembly, do C para asm o caminho seria mais fácil, C++ abstrato relacional precisaria de muito mais para chegar ao resultado final. Entenda que não tenho um estudo quanto a essa questão mas, estudei C/C++ muitos anos para desenvolvimento de Jogos eletrônicos de computador e pelo que bem me parece é isso, se estou enganado corrijam me por favor, não quis ser ignorante quanto ao falar de seus conhecimentos Jota, talvez o problema tenha sido comigo ao interpretar sua perguntar.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço