0033 C与OC差异

//
//  main.m
//  05-NSLog函数使用方法
//
//  Created by apple on 15/1/15.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        //NSLog和printf使用的差异
        //1、NSLog 会自动换行  而printf不会自动换行
        //2、NSLog 会自动输出时间等项目信息,printf不会输出调试信息
        //3、NSLog 函数的参数是一个NSString 对象
        //         printf是一个字符串常量指针
        NSLog(@"Hello, World!");
        printf("Hello, World!\n");
        
        //2、NSLog格式化输出的问题
        
        int a = 5;
        float f1 = 2.3f;
        double d1 = 3.14;
        char ch = 'X';
        char *str="张三丰";
        //如果能够运行,说明OC向下兼容C
        printf("%d,%.2f,%.2f,%c\n",a,f1,d1,ch);
        printf("%s\n",str);
        
        //NSLog格式化输出
        NSLog(@"%d,%.2f,%.2f,%c",a,f1,d1,ch);
        NSLog(@"---->%s",str);  //不能这么写
        //OC中自己特有的字符串表示方法
        //用%@输出字符串
        NSString *str1 = @"张三丰";
        NSLog(@"%@",str1);
        
        //使用printf能够打印str1?
        //不能,NSString 是OC特有的,C不支持
        printf("===>%@\n",str1);
        
        
    }
    return 0;
}
//
//  main.m
//  07-访问OC源文件、C源文件中的函数
//
//  Created by apple on 15/1/15.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>
#include "a.h"

/**
 *  定义C语言函数
 */
void test(){

    printf("main.m  test!\n");

}

//全局声明
//void test2();

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        printf("xxxxxx\n");
        test();  //在main.m原文件中,定义C语言函数
        
        void test2();
        test2();
        
        //调用 a.c中定义的函数
        test3();
        
    }
    return 0;
}

void test2(){

    printf("main.m  test2!\n");

}
/*
    OC 和 C对比学习
 
    1)文件的差异
 
    2)数据类型差异
 
    3)关键字差异
 
    4)流程控制语句
 
       OC中并没有增加新的流程控制
 
       OC中提供一种增强型的for循环
 
       NSArray *arr=@[@"one",@"two",@"three"];
 
       for(NSString *str in arr){
 
            NSLog(@"%@",str);
       
       }
 
   5)OC中函数的定义和声明的差异
     
      C语言中的函数
 
      int max(int x,int y);
      
      int max(int x,int y){
 
            return x>y?x:y;
      }
 
 
      OC中把函数称之为方法
 
      +(void) test;
      -(void) test;
 
      -(int)max:(int)x andY:(int) y;
 
 
 */


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        NSArray *arr=@[@"one",@"two",@"three"];
        //OC中的增强型for循环
        for(NSString *str in arr){
            
            NSLog(@"%@",str);
            
        }
        
        
    }
    return 0;
}
/*
 OC和C对比学习第二部分
 1)OC中新增加的数据类型
 
    (1)Boolean (布林)
        作用:用来存放逻辑值 (1、真(非0)    2、假(0))
             用来做判断
        存储的值:true(真 1)    false(假 0)
 
        Boolean flag = true;
 
        if(flag){
 
            NSLog(@"真 %d",flag);
        }else{
 
            NSLog(@"假 %d",flag);
        }
    
 
    (2)BOOL 
 
        作用:也是用来保存逻辑值
        取值:YES(真 1)   NO(假  0)
 
        BOOL flag2 = YES;
        if(flag2){
 
             NSLog(@"真 %d",flag);
 
        }else{
 
             NSLog(@"假 %d",flag);
        }
 
 
 
 2) OC中的异常捕捉机制
 
       异常: 程序运行的时候有bug
       捕捉机制:排除错误
 
 
    @try {
          //如果有异常
           1/0
	      < #statements#>
 
          。。。。。。。
	}
	@catch (NSException *exception) { 
          //捕捉最具体的异常类型
 
	      < #handler#>
	}
	@catch (NSException *ne) { 
          //捕获一个比较重要的异常类型。
	 
	}
	@catch (id ue) { //再次掷出捕获的异常。
	}
	@finally { //不管有没有异常finally内的代码都会执行。
	       < #statements#>
	}

 
 
 
 
 */


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //Boolean的使用
        //true 1   false  0
        Boolean flag = true;
        
        if(flag){
            
            NSLog(@"真 %d",flag);
        }else{
            
            NSLog(@"假 %d",flag);
        }

        //BOOL类型
        BOOL flag2 = YES;
        if(flag2){
            
            NSLog(@"BOOL YES 真 %d",flag2);
            
        }else{
            
            NSLog(@"BOOL NO 假 %d",flag2);
        }
        
        
        
       
    }
    return 0;
}
posted @ 2015-07-19 09:48  挨踢控  阅读(182)  评论(0编辑  收藏  举报