{"id":1171,"date":"2026-04-04T10:48:49","date_gmt":"2026-04-03T23:48:49","guid":{"rendered":"https:\/\/www.reefwing.com.au\/?p=1171"},"modified":"2026-04-04T10:48:50","modified_gmt":"2026-04-03T23:48:50","slug":"claude-code-creating-a-c-linter-for-embedded-development","status":"publish","type":"post","link":"https:\/\/www.reefwing.com.au\/?p=1171","title":{"rendered":"Claude Code: Creating a C++ Linter for Embedded Development"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.reefwing.com.au\/wp-content\/uploads\/2026\/04\/JSF.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.reefwing.com.au\/wp-content\/uploads\/2026\/04\/JSF-1024x683.png\" alt=\"\" class=\"wp-image-1172\" srcset=\"https:\/\/www.reefwing.com.au\/wp-content\/uploads\/2026\/04\/JSF-1024x683.png 1024w, https:\/\/www.reefwing.com.au\/wp-content\/uploads\/2026\/04\/JSF-300x200.png 300w, https:\/\/www.reefwing.com.au\/wp-content\/uploads\/2026\/04\/JSF-768x512.png 768w, https:\/\/www.reefwing.com.au\/wp-content\/uploads\/2026\/04\/JSF.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p id=\"2173\">I know! I\u2019m late to the Claude Code party but now I\u2019m here, I\u2019m all in.\u00a0If you write C++ for microcontrollers, or edge inference, you already know that the rules are different from desktop software.\u00a0No heap allocation after startup. No exceptions. No recursion on a 4 KB stack. And these constraints are not optional if you want your firmware to survive.<\/p>\n\n\n\n<p id=\"37fe\">The problem is that general-purpose linters do not enforce the rules you need. Clang-tidy is powerful, but configuring it to catch you just used&nbsp;<code>int<\/code>&nbsp;instead of&nbsp;<code>int32_t<\/code>, requires writing custom checks in C++ against the AST. That is a significant investment for what should be a simple rule. I wanted something I could tweak for each project.<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/gitconnected\/claude-code-creating-a-c-linter-for-embedded-development-b2db36d85819\">Read More&#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I know! I\u2019m late to the Claude Code party but now I\u2019m here, I\u2019m all in.\u00a0If you write C++ for microcontrollers, or edge inference, you already know that the rules are different from desktop software.\u00a0No heap allocation after startup. No exceptions. No recursion on a 4 KB stack. And these constraints are not optional if [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[49,7,45,6],"tags":[9,69],"class_list":{"0":"post-1171","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","7":"category-app-development","8":"category-embedded","9":"category-title-post","10":"tag-development","11":"tag-embedded-ai","12":"entry"},"_links":{"self":[{"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=\/wp\/v2\/posts\/1171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1171"}],"version-history":[{"count":1,"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=\/wp\/v2\/posts\/1171\/revisions"}],"predecessor-version":[{"id":1173,"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=\/wp\/v2\/posts\/1171\/revisions\/1173"}],"wp:attachment":[{"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reefwing.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}