{"id":1359979,"date":"2021-03-06T12:00:04","date_gmt":"2021-03-06T12:00:04","guid":{"rendered":"https:\/\/www.wacoca.com\/anime\/1359979\/"},"modified":"2021-03-06T12:00:04","modified_gmt":"2021-03-06T12:00:04","slug":"hello-world-como-voce-nunca-viu-entendendo-c","status":"publish","type":"post","link":"https:\/\/www.wacoca.com\/anime\/1359979\/","title":{"rendered":"Hello World Como Voc\u00ea Nunca Viu! | Entendendo C"},"content":{"rendered":"<p><iframe loading=\"lazy\"  width=\"580\" height=\"385\" src=\"https:\/\/www.youtube.com\/embed\/Gp2m8ZuXoPg\" frameborder=\"0\" allowfullscreen><\/iframe><br \/>\n<br \/>\nSe voc\u00ea nunca viu C ou como um programa funciona de verdade no baixo n\u00edvel, hoje \u00e9 sua chance de ver todo o b\u00e1sico de uma s\u00f3 vez!<\/p>\n<p>Vou desde tipos primitivos, strings, arrays, stacks, heap, aloca\u00e7\u00e3o de mem\u00f3ria, structs, at\u00e9 minimamente entender o que est\u00e1 por baixo do que voc\u00ea chama de linguagem &#8220;orientada a objetos&#8221;.<\/p>\n<p>ERRATAS <\/p>\n<p>&#8211; em 00:06:50 falei errado o range de INT, o certo \u00e9 de -128 a 127<br \/>\n&#8211; em 00:06:06 eu falei certo e deixei a corre\u00e7\u00e3o escrita errada. 64 bits, se voc\u00ea n\u00e3o precisar, desperdi\u00e7a 7 bytes<br \/>\n&#8211; em 00:40:54 eu falei que 255 bytes \u00e9 1\/4 de 1 megabyte, mas \u00e9 de 1 KILObyte.<br \/>\n&#8211; em 00:38:40 eu n\u00e3o sei como deixei passar, mas quando falo de passar o string pras fun\u00e7\u00f5es `f1`, `f2` n\u00e3o est\u00e1 duplicando toda a string e sim a refer\u00eancia pra ela. Se fossem valores primitivos como `int` sim, mas array s\u00f3 o endere\u00e7o duplica mesmo.<br \/>\n&#8211; em 00:57:55 quando dei copy e paste pro createPerson, eu esqueci de usar os argumentos pra fazer `person.age = age` por exemplo e ficou hardcoded. Viram?? Por isso copy e paste \u00e9 perigoso, especialmente meia noite depois de estar cansado de passar 3 dias editando kkkkk`<br \/>\n&#8211; 00:45:20 64-bits s\u00e3o 8 bytes, toda hora na minha cabe\u00e7a fica &#8220;4 bytes&#8221;, mas s\u00e3o 8<\/p>\n<p>CONTE\u00daDO:<\/p>\n<p>00:00:00 Intro<br \/>\n00:02:06 Strings<br \/>\n00:04:37 Inteiros<br \/>\n00:06:54 Two&#8217;s Complement<br \/>\n00:09:22 BigInteger<br \/>\n00:10:45 Pr\u00e9-Float<br \/>\n00:13:47 Floats<br \/>\n00:17:27 0.1 + 0.2 != 0.3?<br \/>\n00:20:37 BigDecimal<br \/>\n00:22:17 Arrays<br \/>\n00:27:48 1o Hello World<br \/>\n00:28:37 Endere\u00e7os e Refer\u00eancias<br \/>\n00:36:02 Contador de Programas e Pilha<br \/>\n00:41:03 Recurs\u00e3o<br \/>\n00:42:54 Ponteiros!<br \/>\n00:45:29 2o Hello World (com ponteiros)<br \/>\n00:48:52 Structs<br \/>\n00:49:47 3o Hello World (com struct)<br \/>\n00:52:25 Refer\u00eancias a Fun\u00e7\u00f5es<br \/>\n00:55:26 4o Hello World (com callbacks)<br \/>\n00:59:57 5o Hello World (pseudo objetos)<br \/>\n01:05:05 Conclus\u00e3o<\/p>\n<p>LINKS:<\/p>\n<p>* Integer (Wikipedia) (https:\/\/en.wikipedia.org\/wiki\/Integer_(computer_science))<br \/>\n* Two\u2019s Complement (Wikipedia) (https:\/\/en.wikipedia.org\/wiki\/Two%27s_complement)<br \/>\n* How numbers are encoded in JavaScript (https:\/\/2ality.com\/2012\/04\/number-encoding.html#:~:text=JavaScript%20numbers%20are%20all%20floating,binary%20format%2C%20in%2064%20bits.)<br \/>\n* FLOATING POINT VISUALLY EXPLAINED (https:\/\/fabiensanglard.net\/floating_point_visually_explained\/)<br \/>\n* What Every Computer Scientist Should Know About Floating-Point Arithmetic (What Every Computer Scientist Should Know About Floating-Point Arithmetic (oracle.com))<br \/>\n* IEEE-754 Floating Point Converter (IEEE-754 Floating Point Converter (h-schmidt.net))<br \/>\n* Number.MAX_SAFE_INTEGER (Number.MAX_SAFE_INTEGER &#8211; JavaScript | MDN (mozilla.org))<br \/>\n* Signed Binary\/Decimal Conversion Using the Two&#8217;s Complement Representation (Signed Binary\/Decimal Conversion (ubc.ca))<br \/>\n* C &#8211; Pointer arithmetic (C &#8211; Pointer arithmetic &#8211; Tutorialspoint)<br \/>\n* Why Discord is switching from Go to Rust (https:\/\/blog.discord.com\/why-discord-is-switching-from-go-to-rust-a190bbca2b1f)<\/p>\n<p>Me siga nas redes sociais:<\/p>\n<p>* Twitter (https:\/\/twitter.com\/akitaonrails)<br \/>\n* Instagram (https:\/\/instagram.com\/akitaonrails)<br \/>\n* Facebook (https:\/\/facebook.com\/akitaonrails)<br \/>\n* Podcasts (https:\/\/anchor.fm\/akitando)<\/p>\n<p>Transcript: https:\/\/www.akitaonrails.com\/2021\/03\/06\/akitando-93-hello-world-como-voce-nunca-viu-entendendo-c<br \/>\nPodcast: https:\/\/anchor.fm\/akitando\/episodes\/Akitando-93&#8212;Hello-World-Como-Voc-Nunca-Viu&#8212;Entendendo-C-erorcv<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se voc\u00ea nunca viu C ou como um programa funciona de verdade no baixo n\u00edvel, hoje \u00e9 sua chance de ver todo o b\u00e1<\/p>\n","protected":false},"author":4,"featured_media":1359980,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[785594,608084,32459,785593],"class_list":{"0":"post-1359979","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-japanese-anime","8":"tag-estrutura-de-dados","9":"tag-gcc","10":"tag-hello-world","11":"tag-linguagem-c"},"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/posts\/1359979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/comments?post=1359979"}],"version-history":[{"count":0,"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/posts\/1359979\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/media\/1359980"}],"wp:attachment":[{"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/media?parent=1359979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/categories?post=1359979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wacoca.com\/anime\/wp-json\/wp\/v2\/tags?post=1359979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}