Volatile限定修饰符
===========================================================
当一个对象的值可能会在编译器的控制或检测之外被改变时,例如一个被系统时间更改的变量,那么这个变量就应该声明成volatile。
其主要作用是提示编译器,该对象的值可能在编译器未检测到的情况下被改变。因此编译器执行的某些例行优化行为不能应用在已指定为volatile的对象上。
其用法与const非常相似, 如下:
volatile int display_register; //一个int型的volatile对象 volatile Task *curr_task; //一个指向volatile的Task类对象的指针 volatile int ixa[ max_size ]; //一个volatile的int型数组。数组中每一个元素都被认为是volatile的 volatile Screen bitmap_buf; //一个volatile的Screen类对象,它的每个数据成员都被认为是volatile的
Pair类型
===========================================================
Pair类是标准库的一部分,它可以在单个对象内部把相同类型或不同类型的两个值关联起来。
要使用pair类,必须包含头文件:
#include <utility>
如下代码创建了一个pair对象author,它包含两个字符串,分别被初始化为“James“ 和“Joyce”:
pair<string, string> author( "James", "Joyce" );
我们可以用成员访问符号(member access notation)访问pair中单个元素。它们是first和second。如下:
string firstBook; if(author.first == "James" && author.second == "Joyce") firstBook = "Stephen Hero";
typedef pair< string, string > Authors; //如果我们希望定义大量相同pair类型的对象,最方便的做法就是用typedef。 Authors proust ( "marcel", "proust" ); Authors joyce ( "james", "joyce" ); Authors musil ( "robert", "musil" );
原文链接: https://www.cnblogs.com/JaneTang/archive/2010/03/01/1676108.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/8447
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!