tag:blogger.com,1999:blog-2590342400118164175.post7390293641278522855..comments2023-02-15T11:16:15.458-03:00Comments on Kelyane: Nunca disse te amo tantas vezesAnonymoushttp://www.blogger.com/profile/05453653235065774002noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-2590342400118164175.post-18429170642854869682010-01-26T12:16:10.278-02:002010-01-26T12:16:10.278-02:00haha também ri.
Alias acho que vou reescrever esse...haha também ri.<br />Alias acho que vou reescrever esse código e incluir suporte a multithred, depois de 10 anos já é hora de pensar em processos filhos.Cesarhttps://www.blogger.com/profile/15244743009865615510noreply@blogger.comtag:blogger.com,1999:blog-2590342400118164175.post-24508536448693670792010-01-26T09:55:25.649-02:002010-01-26T09:55:25.649-02:00Eu ri muito!!!
Mas calma, ou amor não acaba assim,...Eu ri muito!!!<br />Mas calma, ou amor não acaba assim, as vezes trava, ou as vezes tem que comecar de novo, mas nao acaba não. Rs =*Anonymoushttps://www.blogger.com/profile/05453653235065774002noreply@blogger.comtag:blogger.com,1999:blog-2590342400118164175.post-789915481538979582010-01-25T22:51:54.005-02:002010-01-25T22:51:54.005-02:00@crg,
Mas isso não tem nada a ver com o compilado...@crg,<br /><br />Mas isso não tem nada a ver com o compilador. Eu desconheço qualquer arquitetura na qual um estouro de número inteiro cause o disparo de alguma interrupção de erro pelo processador. Isso seria até problema, pois existem muitos códigos de processamento de sinais em C que assumem o comportamento de wrap-around dos inteiros!<br /><br />Se não acredita, experimente esse código:<br /><br />#include <stdint.h><br />#include <stdio.h><br />int main() {<br /> uint8_t c = 0xff;<br /> c++;<br /> printf("%d\n", c);<br /> return 0;<br />}<br /><br />Você obterá o resultado zero, e não ocorrerá erro nenhum no programa.<br /><br />Mesmo que o processador seja de alguma arquitetura maluca que tenha algum comportamento bizarro, o padrão da linguagem C garante o comportamento wrap-around pelo menos para inteiros sem sinal. Para inteiros com sinal o comportamento de wrap-around não é garantido, ou seja, o valor da variável após um estouro não é garantido dependendo da arquitetura, mas nunca resulta em fechamento do programa. No caso de arquiteturas x86, x86_64, ppc, arm, mips, sparc e outras, ocorre o comportamento que eu descrevi.<br /><br />Outra coisa, "segmentation fault" não tem nada a ver com essa história.ubuntinhohttps://www.blogger.com/profile/07325992275782611786noreply@blogger.comtag:blogger.com,1999:blog-2590342400118164175.post-91605332888769859492010-01-25T21:10:53.902-02:002010-01-25T21:10:53.902-02:00É que eu prefiro não correr o risco do amor acabar...É que eu prefiro não correr o risco do amor acabar porque eu confiei no compilador, prefiro escrever código bom. Eu e minha esposa estamos juntos a 10 anos, naquela época o gcc não era tao bom, imagina se eu acordo um dia e ela me diz "segmentation fault" quero o divorcio. hehehe Melhor escrever código bom, sempre.Cesarhttps://www.blogger.com/profile/15244743009865615510noreply@blogger.comtag:blogger.com,1999:blog-2590342400118164175.post-26698176259071387912010-01-25T19:45:17.298-02:002010-01-25T19:45:17.298-02:00@crg,
Deixa a menina em paz. E daí que a variável...@crg,<br /><br />Deixa a menina em paz. E daí que a variável i vai estourar. O que você acha que vai acontecer? Quando ele atingir o maior número possível, ele vai estourar e voltar para o menor número possível, e continuar incrementando normalmente. Não vai dar nenhum erro no programa.<br /><br />E mesmo assim, como ela não está usando a variável i, o gcc é inteligente o suficiente para eliminar essa variável do código compilado mesmo sem ativar otimizações explicitamente. Veja como fica o código assembly x86 compilado:<br /><br /> 580:<br />lea -0x1968(%ebx),%eax<br />mov %eax,(%esp)<br />call 418 <br />addl $0x1,-0xc(%ebp)<br />jmp 580 <br /><br />Viu? Cadê a variável i? Sumiu!<br /><br />Ou seja, o código dela acabou ficando totalmente equivalente a se ela usasse um while(1) (em C) ou while(true) (em C++).ubuntinhohttps://www.blogger.com/profile/07325992275782611786noreply@blogger.comtag:blogger.com,1999:blog-2590342400118164175.post-56828658722645886342010-01-25T10:25:54.846-02:002010-01-25T10:25:54.846-02:00Vai realmente escrever muitas vezes, pena que a va...Vai realmente escrever muitas vezes, pena que a variável inteira i vai estourar assim que atingir o limite da arquitetura. No lugar use um while (true).Cesarhttps://www.blogger.com/profile/15244743009865615510noreply@blogger.com