Open In App

Difference between C and Objective C

Last Updated : 26 Dec, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

The language C was developed in early 1970s by Dennis Ritchie for the UNIX Operating system. It a general purpose, procedural programming language. The language is used for developing system applications as well as desktop applications. To learn more about C language refer to https://www. geeksforgeeks. org/c-programming-language/

Objective C was developed in early 1980s by Brad Cox and Tom Love. It is an object-oriented, general purpose language and was created with the vision of providing small talk-style messaging to the C programming language. This language allows the users to define a protocol by declaring the classes and the data members can be made public, private and protected. This language was used at Apple for iOS and OS X operating systems. Swift language was developed at Apple in 2014 to replace this language. But still there are plenty of companies that are maintaining their legacy apps which are written in objective C.

The main difference in C and Objective C is that C is a procedure programming language which doesn’t support the concepts of objects and classes and Objective C is Object-oriented language which contains the concept of both procedural and object-oriented programming languages.

Difference between C and Objective C:

C Language Objective C
It is a procedure oriented programming language. Problems are solved step by step fashion. Objective c is an object-oriented programming language. It adds syntax and semantics that allows for an object oriented language. But it doesn’t support multiple inheritance property.
C language can be called the subset of Objective C Objective C can be called the super set of C language. It contains classes and objects in addition to C language.
The pointers used in C language are vulnerable to security attacks. The language objective C uses null pointers and hence is type safe compared to C.
It is basically a low level language that stands too close to assembly level language. Objective C is a high-level language stuffed with small talk messaging style together with C.
C language doesn’t incorporate any classes. Bjarne Stroustrup developed the C++ language with the main intent of adding object oriented features like class to the C language. Objective C is object-oriented language and incorporates classes and offers dynamic runtime.
It follows the top-down programming approach. It follows the bottom-up programming approach.
In this language big program code is divided into small pieces of code which is called functions. In this language big program code is divided into smaller codes which is called Objects and Classes.
It supports only pointers. It supports both pointers and references.
Variables should be declared at the beginning of the program. In this language variable can be declared anywhere in the program.
C language doesn’t support the exception handling. Objective C supports the exception handling which can be implement using catch and try blocks.
C doesn’t allow to define the function with default arguments. It allows to define function with default arguments.
C can not run the code of Objective C. Objective C can run the code of C language.
C provides malloc() and calloc() functions for dynamic memory allocation, and free() for memory de-allocation. Objective C provides new operator for memory allocation and delete operator for memory de-allocation.
Data is not secured in C language. Using the concept of encapsulation, security can be achieved in Objective C.
It doesn‘t have the provision of inline function. It supports the inline function.
C does not support function and operator overloading. Objective C supports the function and operator overloading.
In general it’s known as function-driven language. It’s known as object driven language.
It doesn’t supports the encapsulation, Data hiding, inheritance, polymorphism and abstraction. Encapsulation, Data hiding, inheritance, polymorphism and abstraction are the key features of the Objective C.
C language doesn’t supports the templates. Objective C supports the templates.
It’s good for embedded services. It’s good for networking, gaming etc.

Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads