- 博客(9)
- 资源 (4)
- 收藏
- 关注
原创 C++技巧:理解inline的使用和避免
<br />本文来自编程界www.ibiancheng.cn<br />inline语句——多么棒的主意啊!它们看起来像函数,它们产生的效果也像函数,它们在各方面都比宏好得太多太多,而你却可以在调用它们时不招致函数调用的成本。你还有什么更多的要求呢? <br /> 实际上你得到的可能比你想的更多,因为避免函数调用的成本只是故事的一部分。在典型情况下,编译器的优化是为了一段连续的没有函数调用的代码设计的,所以当你 inline 化一个函数,你可能就使得编译器能够对函数体实行上下文相关的特殊优化。大多数编译器
2010-06-30 17:33:00 681
原创 C语言的inline
本文来自http://blog.pfan.cn/vfdff/36003.html本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:<br />inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。 <br />从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码文件)内的编译
2010-06-30 17:31:00 380
原创 inline 函数的使用以及注意事项
<br />在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。 <br /><br /> 可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。 <br /> 下面我们来看一个例子:<br />#include <iostream> <br
2010-06-30 17:21:00 1732
原创 MFC中复选框的使用
<br /> <br />得到复选框状态的函数:CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK);<br /> int state = pBtnNONE->GetCheck();<br /> 当state == 1时表示该复选框没有被选中;<br /> 当state == 0时表示该复选框被选中;<br />设置复选框状态的函数:CButton* pBtn = (CButton*)GetDlgIte
2010-06-30 17:16:00 6637 1
原创 如何设置MFC静态文本背景为透明色?
<br />增加WM_CTRLCOLOR消息处理函数,并增加如下代码:<br /> HBRUSH CWebCautionDlg::OnCtlColor(CDC* pDC,CWnd* pWnd, UINT nCtlColor)<br />{<br /> HBRUSH hbr = CDialogEx::OnCtlColor(pDC,pWnd, nCtlColor);<br /> // TODO: Change any attributes of the DC here<br /> //MessageBox(
2010-06-29 11:17:00 7218 3
原创 MFC 对话框最大化时控件也随比例最大化或者还原
<br /> <br />1. 在oninitdlg中 计算出当前对话框的大小与最大化后大小,注意要用float值,不然误差很大.<br />CRect rect; <br />::GetWindowRect(m_hWnd,rect); <br />ScreenToClient(rect); <br />m_nDlgWidth = rect.right - rect.left; <br />m_nDlgHeight = rect.bottom - rect.top;<br />//计算分辨率<br />m_
2010-06-23 10:05:00 11599 13
原创 [VC/MFC]滑动动条控件Slider的用法
<br />在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下:<br />主要要方法有:<br />1、设置、取得滑动范围:<br /> void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); <br />void GetRange( int& nMin, int& nMax ) const;<br /> <br /><br />2、设置、取得按下左右箭头滑动间隔:<br /> int SetLineSize( int nSiz
2010-06-17 10:02:00 27352 2
原创 OnInitDialog()和对话框的构造函数的区别
对于这个问题关键是它们针对的对象不同:构造函数主要针对的是C++的类对象的成员变量的初始化,是内在的,而OnInitDialog()主要针对的是与类对象相关联的windows窗体上控件的初始化问题,是外在的。在MSDN中微软是这样说的:Commonly Overridden Member Functions of Class CDialogMember function Message it responds to Purpose of the overrideOnInitDialog
2010-06-11 18:28:00 3629
原创 一个简单的IOCP服务器/客户端类
<br />转自:http://www.codeproject.com/KB/IP/iocp_server_client.aspx&usg=ALkJrhiK7Fdt33-qpmcWn4WBmU_v9TuemQ1.1要求The article expects the reader to be familiar with C++, TCP/IP, socket programming, MFC, and multithreading.文章预计,读者熟悉C + +中, TCP / IP协议,套接字编程, MFC的
2010-06-03 16:45:00 7121 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人