码迷,mamicode.com
首页 > 其他好文 > 详细

重读一些基础

时间:2017-11-30 23:34:51      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:rwlock   reset   占用   引用   静态   bool   check   ati   printf   

2017年11月29日 22:25:34

1. 全局静态变量只能作用在 该定义的文件,全局变量可以作用与全部文件,局部静态变量只能作用于局部

例如在头文件里定义了static 全局变量,不同的源文件引用,则在不同的文件里边地址是不同的。如果不是static,则会提示重定义

可以在一个源文件里定义,然后用extern声明

2.静态成员变量和函数 不占用sizeof,但是虚函数,不管多少个,都会在类的起始地址占据4个字节

3.对于map的删除

 

std::map<int, struct tFileInfo>::iterator itr = m_mapFiles.begin();
for (; itr != m_mapFiles.end(); )
{
++itr->second.iCheckCount;
bool bIter = false;
 
if (itr->second.iCheckCount > 3)
{
pthread_rwlock_unlock(&rwlock);
pthread_rwlock_wrlock(&rwlock);
itr->second.reset();
close(itr->first);
printf("close the sock %d\n", itr->first);
 
m_mapFiles.erase(itr++); //erase能使itr失效,++之后,指向下一个
bIter = true;
 
pthread_rwlock_unlock(&rwlock);
pthread_rwlock_rdlock(&rwlock);
}
 
if (!bIter)  //没有达到删除条件的 跌带起不会失效,继续++
{
itr++;
}
 
}
pthread_rwlock_unlock(&rwlock);

重读一些基础

标签:rwlock   reset   占用   引用   静态   bool   check   ati   printf   

原文地址:http://www.cnblogs.com/caopf/p/7923189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!