完善符号常量,运算符以及宏等基础内容,增加高级宏操作文件。
This commit is contained in:
parent
1de4db8170
commit
a3885719ad
@ -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位机则指针变量长度为4,64位机为8。
|
||||
|
0
Chapter2 C与C++/2.9 面向过程与面向对象.md
Normal file
0
Chapter2 C与C++/2.9 面向过程与面向对象.md
Normal file
Loading…
x
Reference in New Issue
Block a user