C与Object-c的简单对比

/*

  1. 源文件后缀名

     C程序的源文件的后缀名为.c

     OC程序的源文件的后缀名为.m   message. 消息机制.

 

     OC是完全兼容C语言的. 所以在.m文件之中是可以写任意的C代码的

     .m文件中. 可以写OC代码、C代码、C++代码.

 

 

  2. main函数仍然是OC程序的入口和出口.

     返回值代表程序的结束状态.

     参数可以接收用户的数据.

 

     也可以不带参数.

 

 

  3. #import指令.

     1). 这是1个预处理指令. 会在编译之前执行.

     2). 作用: #inlcude指令的增强版.

              在预编译的时候,将后面的文件的内容拷贝到写指令的地方.

 

     3). 增强: 1个文件无论import多少次,都只会包含1.

 

 

     4). 如果要使用#Inlcude指令来实现这个效果的话 就会比较麻烦了.

         必须要配合#ifndef指令来实现.

 

     5). #import指令的原理: 在包含1个文件的时候. 底层会先判断这个文件是否被包含.

         如果被包含就会掠过  如果没有包含才会包含.

         不需要使用条件编译指令.

 

 

     6). import指令的用法

         #import "路径" 先找当前源文件所在的目录 没有再去Xcode编译器目录之中查找.

         #import <路径> 直接找Xcode编译器目录.

 

 

        如果是我们自己的文件.别乱放 是放在当前源文件所在的目录下.

 

        "" 包含自己的文件

        <> 包含系统的文件.

 

 

   4. 框架

      苹果或者第三方事先将一些牛X(常用)的功能写好. 把这些功能模块封装在11个类之中.

      把这些功能提供给大家用. 这些类的集合就叫做框架.

 

 

      框架说白了就是1个功能集合. 这些功能是苹果或者其他高手写的.我们要用直接调用就可以了.

 

 

      相当于C语言中的函数库. Location.......

 

      Foundation框架:

     

      提供了一些OC最基础的功能. 数据类型的支持、输入输出.....

 

 

 

      Foundation.h的地址:

    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Foundation.framework/Headers

 

 

     Foundation.h这个文件中包含了所有的Foundation框架中的头文件.

     所以,我们只要包含这个头文件 就相当于将所有的Foundation框架中的头文件都包含了.

 

     所以,我们这么一写 就可以直接使用Foundation框架中的所有的东西了.

 

 

  5. @autoreleasepool 这是1个自动释放池

 

     1)  可以将代码直接写在池子之中.

     2)  也可以删除 目前为止不会有影响.

 

 

  6. NSLog函数.

     1). printf函数的增强版.

     2). 作用: 向控制台输出信息.

 

 

     3). 增强的地方.

         a. 自动换行,不需要去追加'\n' NSLog函数在输出完毕信息之后 会自动的换行.

         b. 在输出信息的同时 还会输出一些与程序有关的其他信息.

            -> 显示执行这句代码的时间 具体到毫秒.

            -> 显示这句代码是由那1个程序来执行的.

            -> 程序运行的时候的进程ID PID

            -> 线程ID

            -> 最后面才是我们输出的信息.

 

       

     4).printf支持使用格式控制符.NSLog函数支持printf函数的全部的格式控制符 并且使用方法都是一样的.

 

 

     5).注意

        a. NSLog函数的字符串参数前面必须要加1@符号.

        b. NSLog函数默认会在输出完毕信息之后换行.

           如果我们在字符串的后面手动的加了'\n' 这个时候NSLog函数的自动换行就会失效.

 

 

     6).从今以后, 忘记printf函数 使用NSLog函数.

 

 

 

  7. OC中的字符串.

     1). C语言的字符串的存储方式.

         a. 使用字符数组来存储

            char str[] = "jack";

 

 

         b. 使用字符指针来保存存储在常量区字符串的地址.

            char *str = "rose";

 

    

     2).OC中专门的设计了1个新的类型来保存字符串。对应我们而言无需关心内部是如何实现的.

 

        设计了1NSString类型的指针变量.用这个指针变量来保存字符串的地址.

 

       

        OC中的字符串常量必须加1个前缀@符号.

        @"jack"  @"rose"  @"北京我爱你" OC的字符串.

 

        "@jack" 这是C语言的字符串. OC的字符串常量的@符号是写在双引号外面的.

 

         "jack""rose" "北京欧你还敢" 这是C语言的字符串.

 

 

        OC的字符串常量使用NSString类型的指针变量来保存地址.

 

 

     3). NSString类型的指针变量只能保存OC字符串。为其赋的字符串必须加前缀@符号.

         不能保存C语言的字符串.

 

 

     4). 使用%@格式控制符 输出 NSString 类型的字符串.

 

     5). NSLog函数的第1个参数是1NSString类型的 所以字符串只能给1OC字符串,不能给1C语言字符串.

 

 

 8. NS前缀

 

    1). NextStep -->Cocoa   实际上是NeXT公司开发的.

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值