第2页 对C的扩展
哈维高 (CS水太深了,急需抱团过海。)
- 章节名:对C的扩展
- 页码:第2页
1. Xcode使用gcc编译.cpp,.c和.m文件;Objective-C刚诞生的时候,.m表示message,是Objective-C的一个重要特性。 2. #import可以自动避免重复包含,虽然说.m文件中也可以使用#include配合#ifndef实现。 3. 框架:
这一点非常好用,比如说Foundation/Foundation.h就是Foudation的主头文件,这样做非常节省人力,但是会牺牲一点点经济性。 4. Cocoa对函数、常量和类型名称都添加了NS前缀,比如NSString、NSLog。这样避免了命名上的冲突。 5. O-C的BOOL比C语言的bool还早诞生了十年(如果没记错的话,C是在C99之后才正式支持bool的?)。使用8位存储空间,YES对应1,NO对应0。这里很重要,有几点需要强调: 1)O-C的BOOL类型实际上是对unsigned char的#define。 2)对于多于8位的整型值,只会保留低8位,这就意味这一个数如果不是0,未必就是YES,这与C非常不同。比如如果取256,(100000000)$_2$,如果在C语言中是为TRUE,但是在O-C,由于低八位全为0,所以赋值给BOOL变量为NO。 3)一定不要使用如下形式:
BOOL function (i1, i2) { return (i1 - i2); }事实上,除非i1 - i2 == 1,否则返回值与YES比较就会出错。所以也同时强烈建议做判断语句时与NO比较而不是YES。
50人阅读
说明 · · · · · ·
表示其中内容是对原文的摘抄