在C/C++中,所有的变量必须先声明后使用。一个声明指定一个变量类型,后面的变量中可以有一个或多个表示该同类型的变量。例如:
int i,j,k=0; //表示定义了3个整形变量 char c; //定义了一个字符型c 当然,一个声明语句中多个变量可拆开来写,如上面的声明等价于 int i=0; int j=0; int k=0; char c; 任何变量的声明都可以使用const限定符限定。限定后值不能被修改,例如: #include <stdio.h> int main() { const int num=20; num=num+2; printf("%d ",num); return 0; } 错误:l-value specifies const object #include <stdio.h> int main() { volatile const int num=20; int *p=# *p=10; printf("%d ",num); return 0; }
结果:10
volatile防止编译器对代码进行优化,提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
原文地址:http://19940325.blog.51cto.com/10789287/1704039