c++
风斜夜
这个作者很懒,什么都没留下…
展开
-
C++的四种强制类型转换
前言 C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。如int a=1;char b=(char)a; 这种转换适用于面向过程的没有类的概念的c语言的转换,然而这样的转换符也能随意地应用于类和类的指针,没有安全检查。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用:...原创 2019-04-16 00:48:16 · 600 阅读 · 0 评论 -
静态变量的方式实现的单例类和单例模板
分析 在C++11标准中,要求局部静态变量初始化具有线程安全性。描述(在标准草案的6.7节中):such a variable is initialized the first time control passes through its declaration; such a variable is considered initialized upon the comp...原创 2019-04-14 23:14:50 · 942 阅读 · 0 评论 -
do{}while(0)在宏定义中的作用和消除goto语句
目录宏定义中使用do{}while(0)的好处do...while(0)消除goto语句宏定义中使用do{}while(0)的好处do{}while(0)的格式:#define MACRO_NAME(para) do{macro content}while(0)总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}whil...转载 2019-05-05 22:30:05 · 1043 阅读 · 0 评论 -
C++的volatile关键字的作用以及常见的误解
近期看到C++标准中对volatile关键字的定义,发现和java的volatile关键字完全不一样,C++的volatile对并发编程基本没有帮助。网上也看到很多关于volatile的误解,于是决定写这篇文章详细解释一下volatile的作用到底是什么。编译器对代码的优化在讲volatile关键字之前,先讲一下编译器的优化。int main() { int i = 0...转载 2019-05-05 22:40:35 · 1880 阅读 · 0 评论 -
windows服务程序启动外部exe程序
目的是service中检查某个exe是否运行了,没有则启动程序。 启动的程序有界面。网上不少是使用ShellExecute来实现的,发现有问题,在win7下实现之后,service启动该程序时会出现一个提示,点击查看会切换到一个奇怪的界面来运行程序。这是因为已经调到session0了,如下图所示: 出现这个...原创 2019-06-06 00:07:48 · 10518 阅读 · 5 评论 -
C++11的智能指针
c++11摒弃了auto_ptr,支持 shared_ptr,unique_ptr,weak_ptr,包含在头文件<memory>中。 智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装,用是防止忘记调用delete释放内存和程序异常的进入catch块忘记释放内存。当超出了智能指针类的作用域是,类会自动调用析构函数,析构函数会自...原创 2019-06-14 00:18:25 · 493 阅读 · 0 评论