{"id":240,"date":"2023-06-28T07:26:22","date_gmt":"2023-06-28T07:26:22","guid":{"rendered":"http:\/\/localhost\/embeddedwala\/?p=240"},"modified":"2023-07-27T04:14:26","modified_gmt":"2023-07-27T04:14:26","slug":"understanding-storage-classes-in-c-a-beginners-guide","status":"publish","type":"post","link":"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/","title":{"rendered":"Understanding Storage Classes in C: A Beginner&#8217;s Guide"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"240\" class=\"elementor elementor-240\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-a1210ec elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a1210ec\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c1c202d\" data-id=\"c1c202d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-inner-section elementor-element elementor-element-25316b8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"25316b8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-4886cc3\" data-id=\"4886cc3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-480fa04 elementor-widget elementor-widget-text-editor\" data-id=\"480fa04\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h2 id=\"Introduction\"><span class=\"ez-toc-section\" id=\"1-Introduction\"><\/span><strong>1. Introduction<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><p>In C programming language, storage class is a vital concept that influences the lifetime, scope, and visibility of variables. C allows declaring variables with various\u00a0<strong>storage classes<\/strong>, which determine their memory storage, persistence, and accessibility. Acquiring knowledge about storage classes is crucial for creating efficient and successful\u00a0<strong>C<\/strong>\u00a0programs as it enables programmers to manage\u00a0<strong>memory allocation<\/strong>,\u00a0<strong>optimize code<\/strong>, and\u00a0<strong>maintain data integrity.<\/strong>\u00a0This blog post will delve into the different storage classes in C, their attributes, and how to utilize them efficiently.<\/p><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_51_1 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor: pointer\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\" role=\"button\"><label for=\"item-69e056f867bb3\" ><span class=\"\"><span style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #337ab7;color:#337ab7\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #337ab7;color:#337ab7\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input aria-label=\"Toggle\" aria-label=\"item-69e056f867bb3\"  type=\"checkbox\" id=\"item-69e056f867bb3\"><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/#1-Introduction\" title=\"1. Introduction\">1. Introduction<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/#2-Storage-Classes-Type\" title=\"2. Storage Classes Type\">2. Storage Classes Type<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/#3-Automatic-Storage-Class\" title=\"3. Automatic Storage Class\">3. Automatic Storage Class<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/#4-External-Storage-Class\" title=\"4. External Storage Class\">4. External Storage Class<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/#5-Static-storage-class\" title=\"5. Static storage class\">5. Static storage class<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/embeddedwala.com\/beta\/blogs\/embedded-c\/understanding-storage-classes-in-c-a-beginners-guide\/#6-Register-Storage-Class\" title=\"6. Register Storage Class\">6. Register Storage Class<\/a><\/li><\/ul><\/nav><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-242 size-full\" src=\"https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes.png\" alt=\"\" width=\"1920\" height=\"1080\" \/><\/p><h2 id=\"Storage Classes Type\"><span class=\"ez-toc-section\" id=\"2-Storage-Classes-Type\"><\/span><strong>2. Storage Classes Type<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><p><strong>In the C language, we use four distinct types of storage classes:<\/strong><\/p><ul><li><ul><li>Automatic Storage Class<\/li><li>External Storage Class<\/li><li>Static Storage Class<\/li><li>Register Storage Class<br \/><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-241 size-full\" src=\"https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storeage-class-type.png\" alt=\"\" width=\"1920\" height=\"1080\" \/><\/li><\/ul><\/li><\/ul><div><pre><strong>\/\/ extern_test.c<\/strong><br \/>#include &lt;stdint.h&gt;\n\nuint8_t extern_var = 8;<br \/>\n<\/pre><\/div><div><pre><strong>\/\/ main.c<\/strong> <br \/>#include &lt;stdio.h&gt;<br \/>#include &lt;stdint.h&gt;\n\nextern uint8_t extern_var;\n\nuint8_t update_static_var() {\n    \/* Static Keyword is used to store *\/\n    static uint8_t static_var = 0;\n    static_var++;\n    return static_var;\n}\n\nuint8_t update_auto_var() {\n    \/* No Default Keyword means auto type *\/\n    uint8_t auto_var = 0;\n    auto_var++;\n    return auto_var;\n}\n\nint main() \n{\n    \/* Register Keyword is used to store *\/\n    register uint8_t register_var = 5;\n    \n    printf(\"Register Var Value = %d\\n\", register_var);\n\n    printf(\"Static Var Update = %d\\n\", update_static_var()); \n    printf(\"Static Var Update = %d\\n\", update_static_var());\n\n    printf(\"Auto Var Update = %d\\n\", update_auto_var());\n    printf(\"Auto Var Update = %d\\n\", update_auto_var());\n\n    printf(\"Extern Var Value = %d\\n\", extern_var);\n    \n    return 0;\n}\n<\/pre><\/div><h2 id=\"Automatic Storage Class\"><span class=\"ez-toc-section\" id=\"3-Automatic-Storage-Class\"><\/span><strong>3. Automatic Storage Class<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><p>The automatic storage class in C is utilized for variables declared within a block or function. Upon entering the block or function, variables declared with the automatic storage class are created automatically, and they are destroyed automatically upon exiting the block or function. If a storage class is not specified for a variable within a function, the automatic storage class is considered to be the default storage class. Variables with the automatic storage class are allocated memory on the stack, and their values are not retained between function calls.<\/p><p><strong>\u00a0 How automatic storage class variables are initialized and scope rules<\/strong><\/p><ol><li><ol><li>Variables with\u00a0<strong>automatic<\/strong>\u00a0storage class in C are initialized to garbage values if no initial value is assigned to them.<\/li><li>If an initial value is assigned to an\u00a0<strong>automatic variable,<\/strong>\u00a0it will be initialized to that value.<\/li><li>The scope of a variable declared with\u00a0<strong>automatic storage class<\/strong>\u00a0is limited to the block or function in which it is declared.<\/li><li>Automatic variables are only accessible within the block or function where they are declared, and are destroyed automatically when the block or function is exited.<\/li><li>The values of\u00a0<strong>automatic variables<\/strong>\u00a0are not retained between function calls and will be re-initialized with a\u00a0<strong>garbage value<\/strong>\u00a0when the function is called again.<\/li><li>It is important to ensure that\u00a0<strong>automatic variables<\/strong>\u00a0are properly initialized within the function before they are used to avoid errors caused by\u00a0<strong>uninitialized values<\/strong>.<\/li><\/ol><\/li><\/ol><h2 id=\"External Storage Class\"><span class=\"ez-toc-section\" id=\"4-External-Storage-Class\"><\/span><strong>4. External Storage Class<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><p>The\u00a0<strong>external storage class<\/strong>\u00a0in C programming enables a variable to be declared such that it can be shared and accessed between multiple source files. When declared with the\u00a0<strong>external storage class<\/strong>, variables are stored in<strong>\u00a0global memory<\/strong>\u00a0and can be accessed by all functions within the same program. This is especially useful when a large variable or an array needs to be shared among multiple functions without having to pass it as a function argument. These variables can be initialized with an\u00a0initial value or left\u00a0<strong>uninitialized<\/strong>\u00a0to be\u00a0<strong>initialized<\/strong>\u00a0later. To declare a variable with the\u00a0<strong>external storage class<\/strong>, the<strong>\u00a0&#8220;extern&#8221; keyword<\/strong>\u00a0is used.<\/p><p><strong>\u00a0 Automatic storage class variables are initialized and scope rules :<\/strong><\/p><ol><li><ol><li>External storage class variables can be\u00a0<strong>initialized<\/strong>\u00a0with an initial value or left\u00a0<strong>uninitialized<\/strong>\u00a0to be\u00a0<strong>initialized<\/strong>\u00a0later.<\/li><li>To declare an external variable, the<strong>\u00a0&#8220;extern&#8221;<\/strong>\u00a0keyword is only necessary in one source file. In other source files that need to access the variable, the variable must be declared again with the &#8220;extern&#8221; keyword but without an initializer.<\/li><li>The scope of an\u00a0<strong>external variable<\/strong>\u00a0extends to all source files in the same program, making it accessible from any function within any source file.<\/li><li>The\u00a0<strong>actual storage<\/strong>\u00a0for the external variable is allocated in only one source file. Hence, the\u00a0<strong>variable<\/strong>\u00a0must be defined\u00a0<strong>(allocated storage)<\/strong>\u00a0in one source file and declared (referenced) in any other source file that needs to access it.<\/li><li>It is essential to declare\u00a0<strong>external variables<\/strong>\u00a0in a header file, which can be included in all source files that need to access the variable. This ensures\u00a0<strong>consistency<\/strong>\u00a0and prevents errors related to multiple declarations of the\u00a0<strong>same variable.<\/strong><\/li><\/ol><\/li><\/ol><h2 id=\"Static storage class\"><span class=\"ez-toc-section\" id=\"5-Static-storage-class\"><\/span><strong>5. Static storage class<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><p>The<strong>\u00a0static storage class<\/strong>\u00a0in\u00a0<strong>C programming<\/strong>\u00a0is a useful feature that allows variables to retain their value even after the function or block in which they are declared has completed execution. Static variables are declared using the<strong>\u00a0&#8220;static&#8221; Keyword<\/strong>. These variables are stored in global memory and are initialized only once, at the time of program execution.<br \/>In addition to retaining values between function calls, the\u00a0<strong>static storage<\/strong>\u00a0class is also used to control the scope of a variable, limiting it to the function or block in which it is declared. By using the\u00a0<strong>static storage class,<\/strong>\u00a0<strong>global variables<\/strong>\u00a0can be created that are only accessible within the file in which they are declared. This helps prevent naming conflicts with variables in other files, making code more modular and organized.<\/p><p>Overall, the<strong>\u00a0static storage class<\/strong>\u00a0is a powerful tool for<strong>\u00a0C programmers<\/strong>\u00a0to control the scope and\u00a0<strong>lifetime of variables<\/strong>. By using the\u00a0<strong>static storage class<\/strong>,\u00a0<strong>programmers<\/strong>\u00a0can create efficient and well-organized code that is easier to maintain and\u00a0<strong>debug<\/strong>.<\/p><p><strong>\u00a0 Static storage class variables are initialized and scope rules :<\/strong><\/p><ol><li><ol><li><strong>Static storage class<\/strong>\u00a0variables are initialized only once, at the time of program execution.<\/li><li>If a\u00a0<strong>static variable<\/strong>\u00a0is declared with an initial value, it is initialized to that value at the time of program execution. If it is\u00a0<strong>not initialized<\/strong>, it is initialized to zero by default.<\/li><li>The scope of a\u00a0<strong>static variable<\/strong>\u00a0depends on where it is declared. If it is declared within a function or block, it is only accessible within that\u00a0<strong>function<\/strong>\u00a0or\u00a0<strong>block<\/strong>. If it is declared outside any function or block, it is accessible to all functions in the same file.<\/li><li>If a<strong>\u00a0static variable<\/strong>\u00a0is declared within a function or block, its value is retained between function or block calls. This means that the variable retains its value even after the function or block has completed execution.<\/li><li>If a\u00a0<strong>static variable<\/strong>\u00a0is declared outside of any function or block, its value is retained throughout the entire\u00a0<strong>program execution<\/strong>.<\/li><li>It is important to note that the actual storage for a<strong>\u00a0static variable<\/strong>\u00a0is allocated only once, at the time of program execution. This means that the\u00a0<strong>variable<\/strong>\u00a0retains its value between function or block calls because it is stored in the\u00a0<strong>global memory<\/strong>.<\/li><\/ol><\/li><\/ol><h2 id=\"Register Storage Class\"><span class=\"ez-toc-section\" id=\"6-Register-Storage-Class\"><\/span><strong>6. Register Storage Class<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2><p>The\u00a0<strong>register storage<\/strong>\u00a0class in\u00a0<strong>C programming<\/strong>\u00a0is used to define a variable that is stored in a\u00a0<strong>CPU register<\/strong>\u00a0instead of in memory.<strong>\u00a0Register variables<\/strong>\u00a0are declared using the\u00a0<strong>&#8220;register&#8221; keyword<\/strong>\u00a0and are typically used for frequently accessed\u00a0<strong>variables<\/strong>\u00a0that require\u00a0<strong>fast access and manipulation<\/strong>. However, it is important to note that the use of the\u00a0<strong>register keyword<\/strong>\u00a0is merely a suggestion to the\u00a0<strong>compiler<\/strong>\u00a0and it is up to the compiler to decide whether or not to store the variable in a\u00a0<strong>register<\/strong>\u00a0or in\u00a0<strong>memory<\/strong>.\u00a0<strong>Register variables<\/strong>\u00a0are also typically limited in size and cannot be directly referenced like\u00a0<strong>other variables.<\/strong><br \/>In\u00a0<strong>modern programming<\/strong>, the use of the\u00a0<strong>register storage class<\/strong>\u00a0has been largely deprecated because most\u00a0<strong>compilers<\/strong>\u00a0are able to optimize variable storage and access on their own, without requiring explicit hints from the\u00a0<strong>programmer<\/strong>. As a result, the use of register variables is typically unnecessary and can even sometimes result in decreased performance due to<strong>\u00a0compiler optimizations<\/strong>.<\/p><p><strong>\u00a0 Register storage class variables are initialized and scope rules :<\/strong><\/p><ol><li><ol><li>\u00a0<strong>Register variables<\/strong>\u00a0are\u00a0<strong>automatically initialized to 0<\/strong>\u00a0or their default value.<\/li><li>\u00a0The scope of register variables is limited to the block in which they are defined. They cannot be accessed outside the block in which they are declared.<\/li><li>\u00a0Register variables cannot have their address taken since they are stored in the\u00a0<strong>CPU register<\/strong>, and not in memory. Therefore, the\u00a0<strong>&#8220;&amp;&#8221;<\/strong>\u00a0operator cannot be used on\u00a0<strong>register variables.<\/strong><\/li><li>\u00a0The use of\u00a0<strong>register storage class<\/strong>\u00a0is largely deprecated in modern programming because most compilers can\u00a0<strong>optimize variable storage<\/strong>\u00a0and access on their own, without the need for explicit hints from the programmer. However, there may be cases where the use of register variables can still provide performance benefits.<\/li><\/ol><\/li><\/ol>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>1. Introduction In C programming language, storage class is a vital concept that influences the&#8230;<\/p>\n","protected":false},"author":1,"featured_media":243,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[65,67,64],"class_list":["post-240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-embedded-c","tag-extern","tag-regiter","tag-storage-classes"],"acf":[],"views":251,"featured_image_urls":{"full":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"thumbnail":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",150,101,false],"medium":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",300,202,false],"medium_large":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"large":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"1536x1536":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"2048x2048":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"tp-image-grid":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"covernews-slider-full":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"covernews-slider-center":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"covernews-featured":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",520,350,false],"covernews-medium":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",505,340,false],"covernews-medium-square":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",371,250,false],"_nx_notification_thumb":["https:\/\/embeddedwala.com\/beta\/wp-content\/uploads\/2023\/06\/storage-classes-in-c.png",100,67,false]},"author_info":{"display_name":"embeddedwala","author_link":"https:\/\/embeddedwala.com\/beta\/author\/embeddedwala\/"},"category_info":"<a href=\"https:\/\/embeddedwala.com\/beta\/category\/blogs\/embedded-c\/\" rel=\"category tag\">Embedded C<\/a>","tag_info":"Embedded C","comment_count":"0","_links":{"self":[{"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/posts\/240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/comments?post=240"}],"version-history":[{"count":7,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/posts\/240\/revisions"}],"predecessor-version":[{"id":6642,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/posts\/240\/revisions\/6642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/media\/243"}],"wp:attachment":[{"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/media?parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/categories?post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embeddedwala.com\/beta\/wp-json\/wp\/v2\/tags?post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}