毕业一年,工作之余也有点无聊,还是写点东西,一则和大家相互交流,自己也能记住学习的东西,而且也能打发下班回来无聊的时间,一石三鸟 O(∩_∩)O哈哈~,我个人还是对嵌入式c比较感兴趣,一个硬件通过编写程序就能让它运行起来 感到很神奇 O(∩_∩)O~。
前两天看了几个关键字,现在写出来就当考验下自己,其中有些认识不到位的,谢谢大家能指出来,希望和大家一起进步。
1.const
const int a ; 常整形的a (int 不可变)
int const a; 整形的常数a (a不可变)
int const *a; 整形的常指针(指针不可变)
const int *a ; 常整形的指针(int 不可变)
const int *a const; 常整形的常指针(int 指针都不可变)
一般人问起const的作用 我的回答通常是‘只读’。一般入参函数前面加入const 让人很容易分清那些是入参函数。
假如 定义int const a; 再给a赋值 编译器就会报错;就相当于常数赋值如:1=4 ;
2.volatile
被volatile修饰的变量,一般不被寄存器优化,告诉编译器,这个值随时可能会变化,一般用于多线程下多任务共享的变量,还有状态寄存器,中断子程序中的全局变量。有些
举个简单例子说明下volatile
volatile int a = 10;
printf("%d",a);
volatile int b = a;
printf("%d",b);
此时打印出来的a 和b 可能相等 也可能不等,因为volatile告诉编译器 这个值随时可以改变。
有错误的认识希望大家指出来,十分感激!