完善符号常量,运算符以及宏等基础内容,增加高级宏操作文件。

This commit is contained in:
Lion Chan 2018-03-19 21:37:23 +08:00
parent 1de4db8170
commit a3885719ad
13 changed files with 39 additions and 0 deletions

View File

@ -181,11 +181,50 @@ ashort++;
```
# 2.1.7 符号常量
有时候我们希望用一个符号来代替某个字面常量,这看起来很像一个不允许改变值的变量,我们用 const 关键字来修饰它,使之成为符号常量。例如:
```cpp
const long cnvar0=666;
const char cnvar1='C';
```
一个符号常量只能在定义时被初始化,并且不能够被再次赋值。例如下面做法是错的:
```cpp
const int cnint = 256;
cnint++;
```
# 2.1.8 运算符
c语言运算符主要包括赋值运算、算数运算、逻辑运算、位运算、比较运算等。运算符主要涉及到优先级,结合性y以及前加加和后加加的问题。例如
```cpp
int val=5, mask=0b0100;
printf("val=%d.\n", val++); // val=5.
printf("val=%d.\n", ++val); // val=7.
if(val<=10 && val>=5)
{
printf("True\n");
}
val &= mask; // val=4.
```
# 2.1.9 宏
通过使用宏可以指导c编译器做一些特别的工作。例如使用define关键字来做一些替代的工作
```cpp
#define BASE_ADDR (0x25)
#define REG1_OFFSET (0x01)
#define REG2_OFFSET (0x02)
printf("Register 1 addr=0x%x.\n", BASE_ADDR+REG1_OFFSET);
printf("Register 2 addr=0x%x.\n", BASE_ADDR+REG2_OFFSET);
```
这称作宏替换。宏替换可以提高程序的可移植性,例如上述例子中,只要修改 #define BASE_ADDR (0x25) 一处便可以修改所有寄存器的地址。
# 2.1.10 指针
指针变量的长度与总线位宽有关如32位机则指针变量长度为464位机为8。