📜  C 和目标 C 之间的区别(1)

📅  最后修改于: 2023-12-03 14:59:39.314000             🧑  作者: Mango

C 和目标 C 之间的区别

简介

C 和目标 C 都是编程语言,都是 C 语言的扩展,二者在一些方面有相似之处,但在其他方面又大有不同。本文将详细介绍二者之间的区别。

概述

C 和目标 C 都是基于 C 语言的扩展语言,C 语言是一种通用的高级程序设计语言,而 C 语言的目标是跨平台的系统编程语言。C 语言通常被编译成机器代码,并可在大多数操作系统上运行。C 语言的设计哲学是以简单,直接和高效为核心。C 语言为程序员提供了许多可以控制计算机硬件的功能,因此常被用于系统编程,嵌入式系统和游戏开发等领域。

目标 C 是一种面向对象的编程语言。目标 C 是 C 语言的正式扩展,在 C 语言的基础上,增加了面向对象程序设计的语法和运行库。与 C++ 不同的是,目标 C 语言核心只新增了少量的关键字。

语法

C 语言和目标 C 语言的语法有所不同。

C 语言中的结构体和函数之间只能通过指针传递数据,并且缺少对象的概念。在 C 语言中,函数通过指针调用,而并不像目标 C 那样拥有成员函数。

// C语言中struct定义
struct person {
    char name[20];
    char sex;
    int age;
};

// 函数声明
void print_person(struct person *p);

与之不同,目标 C 语言支持对象和成员函数。在目标 C 语言中,可以定义一个类,并且该类可以有自己的成员函数。当然,因为目标 C 是一种面向对象的语言,支持类的继承、抽象、封装等概念。

// 目标 C中Class定义
@interface Person : NSObject

@property(nonatomic, strong) NSString *name;
@property(nonatomic, assign) NSInteger age;
@property(nonatomic, strong) NSString *sex;

- (void)sing;
- (void)dance;

@end

// 函数声明
void print_person(Person *p);

另外,目标 C 中的变量通常都是对象,而 C 语言中变量可以是各种各样的数据类型,比如字符串、整形等。

标准库

C 语言和目标 C 语言的标准库也不同。C 语言标准库包括 stdio.h、stdlib.h、string.h 等,而目标 C 标准库则包括 Foundation.h、Core Foundation.h、UIKit.h、Cocoa.h 等。

C 语言的标准库中提供了一些基本的 I/O 函数,如printf、scanf、fgets、fopen 和 fclose 等。而目标 C 的标准库中提供了一些面向对象的功能,如自动内存管理、数组和字符串处理、文件 I/O、网络编程、图形界面和多线程支持等。

总结

综上所述,C 语言和目标 C 语言都是 C 语言的扩展语言。C 语言适合于系统编程,游戏开发和嵌入式系统等领域,而目标 C 语言则适合开发 Mac OS X 和 iOS 系统的应用程序。C 语言的语法更为简单,没有类和成员函数的概念。而目标 C 语言更为复杂,支持面向对象的编程思想。