天天看点

objective C程序 C与OC的对比

//引入头文件

//c中的引入头文件的方式

//#include <stdio.h>

//#include<Foundation/Foundation.h>//没有报错

#import <Foundation/Foundation.h>//引入头文件

//为什么引入import

//import 和include都是引入头文件,import引入的头文件可以防止重复包含

//include他是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题

//2,import 和@class的区别

//3,foundation/Foundation.h是什么东西

//  1)头文件

//2)头文件的位置

//3)文件包含了其他的大量的头文件

// 作用:把Foundation.h引入了,等于把oc的库文件都引过来了

int main(int argc,const char * argv[]) {

    @autoreleasepool {

    //自动释放词

        // insert code here...

       //是一个函数

        //作用:向控制台输出字符串

        NSLog(@"Hello, cjk!");

        printf("hello,world\n");

        //NSLog很像printf,同样会在console中输出结果,不同的是传递进去的格式化字符是NSString的对象,而不是这种字符串常量

        //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?

       //不能

    }

   return 0;

}

//"@"的使用方法

//1)  @" "这个符号表示将一个C的字符转化为OC中的字符串对象NSString

//2)  @标识符   OC中大部分的关键字都是以@开头的

#import <Foundation/Foundation.h>

int main(int argc,const char *argv[]){

    @autoreleasepool {

        //Boolean的使用

        //1 真    0 假

        Boolean flag = true;

        if(flag){

            NSLog(@"真%d",flag);

        }else{

            NSLog(@"假%d",flag);

        }

        //BOOL类型

        BOOL flag2 =YES;

        if(flag2){

            NSLog(@"BOOL YES真%d",flag);

        }else{

            NSLog(@"BOOL NO假%d",flag);

        }

    }

    return 0;

}