ApprenticeX
(usa FreeBSD)
Enviado em 08/02/2022 - 22:36h
SamL escreveu:Cara, não se preocupa com esse detalhe. Hoje em dia com RAM na casa dos GB, não é uma boa ideia ficar "contando byte" ou mesmo quantas funções são inseridas no exe final. Então, use os headers que precisar e não se limite por conta do header adicionar mais uns kilobytes a mais no seu executável.
Boa Noite SamL, Obrigado pela explicação, mas não quero ficar limitado a programar apenas em PCs! Microcontroladores não tem 1Gb de RAM! Estou aprendendo C justamente para aprender a programar direito! E isso significa não disperdiçar recursos! Do contrário eu programaria em uma Linguagem de Alto Nível que é muito mais fácil! C me dá a oportunidade de entender como cada coisa é feita de verdade!
Muitos programadores qdo escrevem um texto em uma tela como ShowMessage("Hello"); não fazem idéia da quantidade de linhas de código ocultas por traz de apenas 1 comando! Logo pra mim, eu acho sim uma excelente idéia contar cada byte que um programa meu está usando, e saber também onde cada byte está sendo usado e porque! Sem disperdícios! Não é uma questão de economizar e sim uma questão de ter total controle sobre aquilo que estou escrevendo e seu funcionamento!
Dando uma outra idéia da explicação: Se eu fosse carpinteiro, não me contentaria em apenas fazer uma Mesa!
Eu ia querer ter total conhecimento da madeira, de onde ela vem, como ela é plantada, quais os tipos disponíveis e porque outros não são disponíveis, ou seja, eu estaria estudando Plantas, Vegetações, Florestas, Adubo e etc...
Estou aprendendo C, querendo aprender Assembly, pq gosto de programação, e de preferência as Bases da Programação. Quando decidi escrever minhas próprias bibliotecas substituindo: strlen, strcat, strcmp e etc... não é pra competir com elas, e sim para entender como elas funcionam, como foram feitas, porque, que lógica mental usaram para criá-las, porque... e etc...
Outro Exemplo: Aprendendo com idéias aqui do fórum e outras perguntas, e através de uma resposta do Paulo sobre vector de vector em C++, Montei um Database assim. Muito bom, prático, funciona... Mas decidi fazer depois ele na mão, sem essas facilidades todas, e por isso estou estudando ponteiros e malloc pq eu mesmo quero fazer isso em C. É fácil usar string em C++ mas isso não ensina nada! Foi graças a um array de char que entendi o que é de verdade uma string!
Mas mesmo um char possue um monte de código oculto pra ele existir! E que acredito que só devo saber qdo aprender Assembly!
Logo pra mim, economizar Bytes é reduzir a complexidade de um Objeto pra me facilitar o aprendizado! E ao colocar uma Biblioteca em meu programa, significa que estou ignorando enxergar e aprender um monte de coisas ocultas por trás delas!
Eu estou indo na contra-mão da história... Meu objetivo não é programar pra ninguém, meu objetivo e entender como funciona esse básico da programação que começa com Aceso e Apagado, e disso vai para um pequeno microship e depois para uma comunicação escrita! E sei que é um Gigante Longo caminho, começando no C, depois para o Assembly... E deverão ser dezenas de anos aprendendo!
Meu computador com Linux possue 32Gb de RAM, mais que óbvio que nunca foi importante pro meu PC qto de memória meu programinha em C vai usar. Tanto que a pouco fazendo testes com uma struct precisei adicionar a opção
-mcmodel=medium para poder compilar visto que a qtd de memória alocada era de fato gigantesca, claro que isso resolveu o problema para a struct ser aceita pelo compilador! Mas não é assim que desejo resolver problemas, quero alocar somente e puramente o que de fato é necessário!
Em C aprendi que cada palavra que escrevo usa 1 Byte!
Olha que LEGAL e Interessante isso! Hoje todas as vezes que escrevo um texto pra guardar, SEI exatamente que gasto 1 Byte por palavra! E gosto de economizar palavras em meus textos, assim sei que não estou disperdiçando ou mesmo quando estou disperdiçando e o porque! E quem me ensinou isso foi C e seu char.
Não sei as outras pessoas, mas me fascina saber esse tipo de coisa! Fiquei muito Feliz qdo pude entender o porque tal arquivo tem tantos bytes e etc... Fiquei feliz de pegar um simples editor de texto, escrever 8 bytes nele, salvar e verificar que tinha mesmo 8 bytes! Achei isso Fascinante!