¿Cuál es la diferencia entre Objective-C y solo C-Language?

C es estrictamente un lenguaje de procedimiento. Las llamadas a funciones están directamente vinculadas a su implementación. No tiene noción de objetos. La idea completa son las funciones que actúan sobre los datos, que es una entidad completamente separada. C se preocupa principalmente por ser un lenguaje ensamblador de alto nivel. El objetivo C incluye el concepto de objetos, que vincula el código y los datos sobre los que opera juntos. Como dijo Jean-Claude, usa mensajes que pasan entre objetos. También se debe tener en cuenta que una característica que adoptó de Smalltalk es que las llamadas a métodos usan palabras clave para iniciar el paso de mensajes y para separar los parámetros. C no utiliza palabras clave en las llamadas a funciones en absoluto. Simplemente dice: FunctionName (parámetro1, parámetro2, …) ;. Ambos tienen tipos de datos basados ​​en etiquetas, aunque en Obj-C hay una forma de usar la escritura dinámica, usando la etiqueta “id”, donde puede pasar cualquier objeto a un método, o devolver cualquier objeto a una persona que llama, y ​​determinar su tipo más tarde.

El objetivo C tiene un sistema de mensajes y, a diferencia de C ++, no llama directamente al método de un objeto, sino que le envía un mensaje. El interés es poder hacer fácilmente un método polimórfico. El principal inconveniente es lento.

El objetivo C es, como su nombre lo indica, lenguaje orientado a objetos, mientras que C es solo un lenguaje de procedimiento. Casi no hay similitud entre estos dos.