﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-frombyte 的c++开发</title><link>http://www.cppblog.com/frombyte/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 18:39:50 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 18:39:50 GMT</pubDate><ttl>60</ttl><item><title>深入结构体、类等内存字节对齐理论</title><link>http://www.cppblog.com/frombyte/archive/2011/10/03/157422.html</link><dc:creator>张宇</dc:creator><author>张宇</author><pubDate>Mon, 03 Oct 2011 09:39:00 GMT</pubDate><guid>http://www.cppblog.com/frombyte/archive/2011/10/03/157422.html</guid><wfw:comment>http://www.cppblog.com/frombyte/comments/157422.html</wfw:comment><comments>http://www.cppblog.com/frombyte/archive/2011/10/03/157422.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/frombyte/comments/commentRss/157422.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/frombyte/services/trackbacks/157422.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; &nbsp; 先说个题外话：早些年我学C程序设计时，写过一段解释硬盘MBR分区表的代码，对着磁盘编辑器怎么看，怎么对，可一执行，结果就错了。当时调试也不太会，又根本没听过结构体对齐这一说，所以，问题解决不了，好几天都十分纠结。后来万般无奈请教一个朋友，才获悉可能是结构体对齐的事，一查、一改，果真如此。&nbsp; &nbsp; 问题是解决了，可网上的资料多数只提到内存对齐是如何做的，...&nbsp;&nbsp;<a href='http://www.cppblog.com/frombyte/archive/2011/10/03/157422.html'>阅读全文</a><img src ="http://www.cppblog.com/frombyte/aggbug/157422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/frombyte/" target="_blank">张宇</a> 2011-10-03 17:39 <a href="http://www.cppblog.com/frombyte/archive/2011/10/03/157422.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简记：柔性数组、快速指向new申请的内存空间、函数指针的认识</title><link>http://www.cppblog.com/frombyte/archive/2011/07/31/152161.html</link><dc:creator>张宇</dc:creator><author>张宇</author><pubDate>Sun, 31 Jul 2011 09:43:00 GMT</pubDate><guid>http://www.cppblog.com/frombyte/archive/2011/07/31/152161.html</guid><wfw:comment>http://www.cppblog.com/frombyte/comments/152161.html</wfw:comment><comments>http://www.cppblog.com/frombyte/archive/2011/07/31/152161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/frombyte/comments/commentRss/152161.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/frombyte/services/trackbacks/152161.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: simsun; line-height: 23px; ">1、使用柔性数组可使大量定义的结构体在内存中的处理更加简捷(之前竟然不会，看来读的代码实在是太少了)，如自定义的一个文件名称的结构体：</span><span style="font-family: simsun; font-size: 14px; line-height: 23px; "><div><div>typedef struct strFileName{</div><div><span style="white-space:pre">	</span>UCHAR line_num;//动态中保留</div><div><span style="white-space:pre">	</span>UCHAR lenByByte;//文件名长度，字节长度，不解释字符集</div><div><span style="white-space:pre">	</span>UCHAR type;</div><div><span style="white-space:pre">	</span>UCHAR page_code;</div><div><span style="white-space:pre">	</span>char &nbsp;name[0];};<br /><br />使用char name[0]，可以在得到名称长度后，一次性将空间申请好，免去再指针一次的麻烦。<br />2、使用数组方式调用内存流的方法，如定义一个结构体：</div></div></span><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: simsun; line-height: 23px; ">typedef struct strFileName{</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: simsun; line-height: 23px; "><span style="white-space: pre; ">	</span>UCHAR line_num;//动态中保留</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: simsun; line-height: 23px; "><span style="white-space: pre; ">	</span>UCHAR lenByByte;//文件名长度，字节长度，不解释字符集</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: simsun; line-height: 23px; "><span style="white-space: pre; ">	</span>UCHAR type;</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: simsun; line-height: 23px; "><span style="white-space: pre; ">	</span>UCHAR page_code;};<br /><br />如果再 strFileName* pA=new strFileName [100];<br />可以直接使用pA[0]指第一个结构体，pA[1]指第二个结构体(以前笨笨的老是用强制转换实现，汗。。)<br />3、关于函数指针(个人看法)：<br />.h文件似乎就是定义了一个函数指针，实例化后，会把实例化后的函数地址，写在函数指针里，所以在定义函数指针时，一定要定义前已经对目标实例化。<br />多个源文件的编译过程也可以理解了，不包含.h，就无法找到具体实现函数的入口，其实包含了也不会影响太大性能。<br /><br /></div><span style="font-family: simsun; font-size: 14px; line-height: 23px; "><div><div></div></div></span><img src ="http://www.cppblog.com/frombyte/aggbug/152161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/frombyte/" target="_blank">张宇</a> 2011-07-31 17:43 <a href="http://www.cppblog.com/frombyte/archive/2011/07/31/152161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>