OC和C的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC和C的区别?相关的知识,希望对你有一定的参考价值。

c++语言是c语言发展起来的,所以继承了c语言几乎所有的特点,但c++语言又有自己的个性。c语言是一种面向过程的编程语言,而c++主要是面向过程的,因此c++有类的概念,而c语言就没有。c++的功能强大,编译器复杂,适合高端程序的设计和编辑,c语言的编译器简易,适合低端程序。

参考技术A 1、@符号:
1)@"" 表示OC中的字符串
2)@特殊单词 OC的关键字
3)NS 前缀的说明

2、oc和c的区别:
1) 源文件的差异
.m .h .c .h

2)数据类型
block 块
id
BOOL YES/NO 1/0
SEL 选择器
Boolean 布尔类型 true/false 1/0

3)关键字和标示符
带@的和一些需要记得

4)语句结构(分支和循环)
oc 增强型for循环 forin(快速枚举)

5)逻辑类型
新增BOOL / Boolean类型。

C中的int和OC中的NSInteger区别

在c语言中,int和long的字节数是和操作系统指针所占位数相等。

但c语言中说,long的长度永远大于或等于int

objective-c里,苹果的官方文档中总是推荐用NSInteger

它和int有什么区别呢,stackoverflow这帮大神给了答案。

原来在苹果的api实现中,NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。

定义的代码类似于下:

 

#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64

typedef long NSInteger;

typedef unsigned long NSUInteger;

#else

typedef int NSInteger;

typedef unsigned int NSUInteger;

#endif

 

 You usually want to use NSInteger when you don‘t know what kind of processor architecture your code might run on, so you may for some reason want the largest possible int type, which on 32 bit systems is just an int, while on a 64-bit system it‘s a long.

总结:NSInteger与int的区别是NSInteger会根据系统的位数(32or64)自动选择int的最大数值(int or long)。

转:http://blog.csdn.net/freedom2028/article/details/8035847

以上是关于OC和C的区别?的主要内容,如果未能解决你的问题,请参考以下文章

C和OC的基础语法(易混淆的概念知识)

Swift 闭包 与 OC block区别

oc基础知识(转)

OC中 Null 与 nil的区别

ios 整理(一)swift和oc的区别

iOS求职之OC面试题