Objective-C 2.0 语言基础:从指针到数据类型转换的全面解析
1. restrict 关键字与指针
在 Objective-C 2.0 中, restrict
关键字可用于指针,它是给编译器的优化提示,类似于变量使用 register
关键字。 restrict
关键字向编译器表明,该指针将是对特定对象的唯一引用,即在同一作用域内,不会有其他指针引用该对象。例如:
int * restrict intPtrA;
int * restrict intPtrB;
这两行代码告诉编译器,在 intPtrA
和 intPtrB
定义的作用域内,它们永远不会访问相同的值,它们指向整数(如数组中的整数)的操作是相互排斥的。
2. 表达式的定义与分类
2.1 表达式的构成
变量名、函数名、消息表达式、数组名、常量、函数调用、数组引用以及结构体和联合体引用等都被视为表达式。对这些表达式应用一元运算符(在合适的情况下)也是表达式,使用二元或三元运算符组合两个或多个表达式同样是表达式。此外,用括号括起来的表达式也是表达式。
2.2 lvalue 与可修改 lvalue
标识数据对象的非 void
类型的表达式称为左值(lvalue)。如果左值可以被赋值,则称为可修改左值(modifiable lvalue)。可修