{"id":844,"date":"2013-11-09T16:40:14","date_gmt":"2013-11-09T08:40:14","guid":{"rendered":"http:\/\/guoh.ai\/lifelog\/?p=844"},"modified":"2013-11-09T17:16:08","modified_gmt":"2013-11-09T09:16:08","slug":"pitfalls-in-c-cpp","status":"publish","type":"post","link":"https:\/\/guoh.ai\/lifelog\/2013\/11\/pitfalls-in-c-cpp\/","title":{"rendered":"C\/CPP\u4e2d\u7684\u5751"},"content":{"rendered":"<p>\u8bb0\u5f55C\/CPP\u5f53\u4e2d\u4e00\u4e9b\u9690\u6666\u7684\u95ee\u9898\uff0c\u5e76\u975e\u8457\u540d\u7684<a href=\"http:\/\/en.wikipedia.org\/wiki\/C_Traps_and_Pitfalls\" target=\"_blank\">C Traps and Pitfalls<\/a>\uff0c\u867d\u7136\u6709\u53ef\u80fd\u5305\u542b\u4e00\u4e9b\u76f8\u540c\u7684\u70b9\u3002<\/p>\n<p>1\u3001\u7c7b\u578b\u9000\u5316(\u9690\u5f0f\u8f6c\u6362)\u95ee\u9898<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n\r\n#define SIZEOF(A) \\\r\n\tsizeof(A) \/ sizeof(A&#x5B;0])\r\n\r\ninline static int sizeOfCharArray(char a&#x5B;])\r\n{\r\n\treturn sizeof(a) \/ sizeof(a&#x5B;0]); \/\/ type casting by default\r\n}\r\n\r\nint main(int argc, char **argv)\r\n{\r\n\tchar a&#x5B;10];\r\n\ta&#x5B;0] = 5;\r\n\ta&#x5B;9] = 8;\r\n\r\n\tvoid *p = &amp;a; \/\/ do it explicitly\r\n\r\n\tprintf(&quot;sizeof char array %d %lu %lu\\n&quot;, sizeOfCharArray(a), sizeof((char*) p), SIZEOF(a));\r\n\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>\u6ce8\u610f\u8fd9\u6bb5\u7a0b\u5e8f\u5f53\u4e2d<strong>sizeOfCharArray<\/strong>\u65b9\u6cd5\uff0c\u5176\u5b9e\u5728\u5f88\u591a\u60c5\u51b5\u90fd\u4f1a\u6709\u9690\u5f0f\u8f6c\u6362\uff0c\u4f46\u662f\u548csizeof\u4e00\u8d77\u7528\u7684\u65f6\u5019\u8981\u6ce8\u610f\u3002<\/p>\n<p>2\u3001\u591a\u5c42\u5faa\u73af\uff0c\u6548\u7387\u95ee\u9898<br \/>\nhttp:\/\/rednaxelafx.iteye.com\/blog\/352730<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8bb0\u5f55C\/CPP\u5f53\u4e2d\u4e00\u4e9b\u9690\u6666\u7684\u95ee\u9898\uff0c\u5e76\u975e\u8457\u540d\u7684C Traps and Pitfalls\uff0c\u867d\u7136\u6709\u53ef\u80fd\u5305\u542b\u4e00\u4e9b\u76f8\u540c\u7684\u70b9\u3002 1\u3001\u7c7b\u578b\u9000\u5316(\u9690\u5f0f\u8f6c\u6362)\u95ee\u9898 #include &lt;stdio.h&gt; #define SIZEOF(A) \\ sizeof(A) \/ sizeof(A&#x5B;0]) inline static int sizeOfCharArray(char a&#x5B;]) { return sizeof(a) \/ sizeof(a&#x5B;0]); \/\/ type casting by default } int main(int argc, char **argv) { char a&#x5B;10]; a&#x5B;0] = 5; a&#x5B;9] = 8; void *p = &amp;a; \/\/ do it explicitly printf(&quot;sizeof char array %d &hellip; <a href=\"https:\/\/guoh.ai\/lifelog\/2013\/11\/pitfalls-in-c-cpp\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">C\/CPP\u4e2d\u7684\u5751<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,28,8],"tags":[],"class_list":["post-844","post","type-post","status-publish","format-standard","hentry","category-c","category-cpp","category-paste"],"_links":{"self":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts\/844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/comments?post=844"}],"version-history":[{"count":3,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts\/844\/revisions"}],"predecessor-version":[{"id":847,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/posts\/844\/revisions\/847"}],"wp:attachment":[{"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/media?parent=844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/categories?post=844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/guoh.ai\/lifelog\/wp-json\/wp\/v2\/tags?post=844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}