{"id":25338,"date":"2022-12-09T12:58:44","date_gmt":"2022-12-09T07:28:44","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/"},"modified":"2022-12-09T12:58:44","modified_gmt":"2022-12-09T07:28:44","slug":"solved-why-do-i-get-output-5","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/","title":{"rendered":"[Solved] Why do I get output &#8220;5&#8221;?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-26663708\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"26663708\" data-parentid=\"26663652\" data-score=\"6\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>This program is invalid (further explanation of why follows below).<\/p>\n<p>In C89 when you call <code>m()<\/code>, or in C99 when you start the program at all, undefined behaviour is caused. This means anything can happen. To put it another way, the compiler only has to cope with correct programs; and if you make a mistake then you can get junk results happening (this is not just limited to invalid output).<\/p>\n<p>In C89 this code actually does not require any compiler diagnostics<sup>1<\/sup>.  It just causes undefined behaviour. (Helpful compilers may give you a warning anyway.)<\/p>\n<p>This is because the line <code>int k = m();<\/code> causes implicit declaration of a function <code>m()<\/code> returning <code>int<\/code> and taking unspecified arguments.  However, the actual function body of <code>m<\/code> returns <code>void<\/code>. This means that if <code>m<\/code> is ever called, then undefined behaviour is triggered.  <\/p>\n<p>In practical terms, what you may be experiencing is that the <code>main<\/code> function looks in a particular register for the value returned from <code>m<\/code>, but the function body of <code>m<\/code> did not set that register, and it happened to contain <code>5<\/code> by chance. Do not rely on this behaviour.<\/p>\n<p>Since you did not use <em>function prototypes<\/em>, the compiler is not required to diagnose this error. If you did use a function prototype (e.g. <code>void m(void)<\/code>), or if you move <code>void m()<\/code> to be before <code>main()<\/code> then the compiler is required to give a diagnostic.  (If you then go on to run your program anyway , ignoring this message, then the entire behaviour of the program is undefined).<\/p>\n<p>In C99 , implicit declaration of functions was removed, and the line <code>int k = m();<\/code> must give a diagnostic.<\/p>\n<hr>\n<p><sup>1<\/sup> <em>requires a diagnostic<\/em> means that the code has an error according to Standard C, and the compiler must report a message to you. The compiler may choose to categorize this message as &#8220;warning&#8221; and produce an executable anyway, however the code is still incorrect in this scenario and should be fixed.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">14<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Why do I get output &#8220;5&#8221;? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] This program is invalid (further explanation of why follows below). In C89 when you call m(), or in C99 when you start the program at all, undefined behaviour is caused. This means anything can happen. To put it another way, the compiler only has to cope with correct programs; and if you make a &#8230; <a title=\"[Solved] Why do I get output &#8220;5&#8221;?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\" aria-label=\"More on [Solved] Why do I get output &#8220;5&#8221;?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324],"class_list":["post-25338","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Why do I get output &quot;5&quot;? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Why do I get output &quot;5&quot;? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] This program is invalid (further explanation of why follows below). In C89 when you call m(), or in C99 when you start the program at all, undefined behaviour is caused. This means anything can happen. To put it another way, the compiler only has to cope with correct programs; and if you make a ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-09T07:28:44+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Why do I get output &#8220;5&#8221;?\",\"datePublished\":\"2022-12-09T07:28:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\"},\"wordCount\":316,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\",\"name\":\"[Solved] Why do I get output \\\"5\\\"? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-09T07:28:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Why do I get output &#8220;5&#8221;?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Why do I get output \"5\"? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Why do I get output \"5\"? - JassWeb","og_description":"[ad_1] This program is invalid (further explanation of why follows below). In C89 when you call m(), or in C99 when you start the program at all, undefined behaviour is caused. This means anything can happen. To put it another way, the compiler only has to cope with correct programs; and if you make a ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/","og_site_name":"JassWeb","article_published_time":"2022-12-09T07:28:44+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Why do I get output &#8220;5&#8221;?","datePublished":"2022-12-09T07:28:44+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/"},"wordCount":316,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/","url":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/","name":"[Solved] Why do I get output \"5\"? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-09T07:28:44+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-do-i-get-output-5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Why do I get output &#8220;5&#8221;?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=25338"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25338\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=25338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=25338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=25338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}