C语言中volatile是什么意思,有什么作用呢?

volatile的中文意思—-易变的。在C语言中,volatile是一个类型修饰符(type specifier),volatile修饰的变量是说这个变量可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

volatile变量主要用在以下几个方面:

(1)并行设备的硬件寄存器(如状态寄存器);
(2)一个中断服务子程序中会访问到的非自动变量;
(3)多线程应用中被几个任务共享的变量。

举个例子,如下: 阅读全文 »

 


C/C++程序一般都由程序员自己来控制内存的申请和释放,因此稍有不慎就容易出现内存泄漏,大家平时开发中都用什么方法和手段来检测、调试程序的内存泄漏呢?

1. 如何发现内存泄漏

ps -aux

2. 静态分析 阅读全文 »

 


善于总结得以提高水平、积累知识。

本文是对CSDN论坛话题——指针的危害的一篇总结。在这个话题中,众多网友对C/C++指针的使用进行了讨论。这是一个老话题,老调重谈,但却非常有意义,因为指针跟程序员是如此的亲密无间。

关于指针的使用,众多的C/C++程序员对它是即爱又恨,它带给我们灵活,也带给我们伤害。在每个C/C++程序员的成长过程中,相信都有受到过指针伤害的经历。曾经,我也对它产生过抗拒……

那么,我们该如何正确看待指针呢?下面是一些网友关于这个话题的回答: 阅读全文 »

 


作者:reille

首发博客网址:http://blog.csdn.net/reille/,转载本博客原创文章请注明出处:http://velep.com/archives/80

本文内容概要: 代码中特殊的注释技术——TODO、FIXME和XXX的用处。

阅读全文 »

 


之所以会摘录下面文章,除了下面的知识点自己没有掌握之外,还因为在编写代码时,出现了诸如下面的错误: undefined reference to `XXX::XXX()’

原因:如果在链接时找不到对应的o文件,则在创建一个类对象且链接时就会出现这个错误,本人是在Makefile中忘记加了,范了个低级错误!

 //显式地禁止隐式生成的函数:声明它但是不要实现它 
#include<iostream>
using namespace std;

//一个类有六个缺省的成员函数 
class A
{
public:
	A( void ); //声明缺省构造函数 
	A( const A& another ); //声明拷贝构造函数 
	~A( void ); //声明析构函数 
	A &operator = (const A& another );//声明赋值运算符 
	A *operator&( void ); //声明取址运算符 
	const A *operator & ( void ) const; //声明取址运算符[const版本] 
};

// 实现析构函数 

A::~A( void )
{
}

int main()
{
    //以上只声明缺省构造函数但是没有实现该函数,因此当用缺省构造函数创建一个对象时, 
    //编译器提示出错信息:引用了未定义的缺省构造函数 
	//A obj; // [Linker error] undefined reference to `A::A()' 

	system( "pause" );
	return 0;
}

//本程序只实现析构函数,其他五个都是只声明不定义, 
//这样能确保:系统不会再产生已声明过的函数,但是又不能调用,因为没有定义。 
//这就达到了:显式地禁止隐式生成的函数的目的。 
© 2012 velep.com | reille blog | 管理| 粤ICP备12094833号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量