存档

文章标签 ‘C++’

【C/C++】static关键字的作用

2010年12月25日 没有评论

static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种在C/C++语言中使用, 第三种只在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).

(1)局部静态变量

(2)外部静态变量/函数

(3)静态数据成员/成员函数

下面就这三种使用方式及注意事项分别说明

一、局部静态变量

在C/C++中, 局部变量按照存储形式可分为三种auto, static, register

与auto类型(普通)局部变量相比, static局部变量有三点不同

阅读全文…

分类: 程序开发 标签: , 1,476次阅读

volatile关键字的作用:防止变量被编译器优化

2010年12月25日 没有评论

volatile关键字是一种类型修饰符,用它声明的类型变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

其中关键在于两个地方:     
 
1. 编译器的优化

在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;

当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致

当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致

当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致 

2. 在什么情况下会用到

阅读全文…

分类: 程序开发 标签: , , 1,179次阅读

Dev-C++使用笔记

2010年6月4日 2 条评论

第一次用Dev-C++,遇到两个问题,记录一下

1、编译错误:g++.exe ws2_32.lib:No such file or directory

解决方法:菜单 工程->工程属性->参数->连接器 添加 -l wsock32,重新编译通过

2、编译错误:[Linker error] undefined reference to `__cpu_features_init’ -chu

解决方法:菜单 工具->编译选项->目录->库->新增MinGW底下的lib->把它移至最上面,重新编译通过

分类: 软件技巧 标签: 1,535次阅读