------- android培训、java培训、IOS培训期待与您交流! ----------
1、源文件的对比
C语言中:我们能够遇到的文件后缀有:
.c:C语言的源文件。
.o:C语言编译后的目标文件。
.out:可执行文件。
.h:头文件。
OC语言中:我们能遇到的文件后缀有:(常见的是.m和.h)
.h:头文件。
.c:C语言的源文件。
.cpp/.cc:C++语言的源文件。
.m:OC语言的源文件。
.mm:OC++语言的源文件。
2、基本语法对比:
(1)对比数据类型:由于OC语言是向下兼容C语言的,所以可以使用C语言的所有数据类型,OC特有的数据类型有
①布尔型(BOOL)。②Block类型。③指针类型分为类和id类型。④特殊类型(SEL、nil)。
BOOL与Boolean类型举例说明:
</pre><pre name="code" class="objc">#import <Foundation/Foundation.h> int main(int argc, const char * argv[]){ @autoreleasepool{ //1、Boolean类型的使用 Boolean flag = true; flag = false; //true真、false假 printf("flag = %d\n",flag); if(flag){ printf("XXXXXXXXXXX\n"); } //2、BOOL类型的使用 BOOL flag1 = YES;//取值为YES和NO flag1 = NO; printf("flag1 = %d\n",flag1); if(flag1){ printf("XXXXXXXXXXX\n"); } } }
</pre></p><p><span style="font-size:14px;">(2)变量定义的差异(关键字):C语言的关键字都可以在OC源程序中使用,OC语言新增的关键字有一部分是以@开头这里不再一一赘述。</span></p><p><span style="font-size:14px;">(3)流程控制语句对比:OC语言中可以使用C语言中的流程控制语句;</span></p><p><span style="font-size:14px;">新增的几种语句有:增强型for循环、可以快速遍历数组、字典等集合。</span></p><p><span style="font-size:14px;"></span><pre name="code" class="objc">NSArray *arr=@[@"one",@"two",@"three"]; for(NSString *str in arr){ NSLog(@"%@",str); }(4)函数的定义和声明的区别:
C语言中,函数的定义如下:
int max(int x,int y); int max(int x,int y){ return x>y?x:y; }
OC语言中,函数被称为方法:
+(void) test;//类方法 -(void) test1;//对象方法 -(int)max:(int)x and:(int *) y;//方法的声明 -(int)max:(int)x and:(int *) y{//方法的实现 return a+b; }3、OC语言中新增的异常捕捉方法:
Object-C语言的异常处理符号和C++、JAVA相似。再加上使用NSException,NSError或者自定义的类,我们可以在应用程序里添加强大的错误处理机制。
异常处理机制是由这个四个关键字支持的:@try,@catch,@thorw,@finally。当代码有可能出现异常时,我们把他放到@try语句块中。@catch()块包含了处理@try块里的抛出的异常的逻辑。无论异常是否发生,@finally块里面的语句都会执行。如果直接使用@throw块来抛出异常,这个异常本质上是一个OC的对象。咱们可以使用NSException对象,但是不局限于他们。
下面是一个典型的异常处理块的例子:
@try{ int b = t/0;//这里放的是有可能出错误的代码。 } @catch (NSException *exception){//这里放出错后处理的代码 } @finally{//这里放的无论出没出错都会执行 }