# data[].attributes.body
Tamaño de los tipos de datos básicos

En C, el tamaño de los tipos de datos básicos puede variar de una plataforma a otra. Esta característica está detrás de buena parte de las críticas que recibe este lenguaje, pues de ella se derivan problemas de compatibilidad (una aplicación se comporta de forma diferente cuando se ejecuta en plataformas diferentes).

# data[].attributes.body
Tablas

Las tablas en C son prácticamente idénticas a las de Java, con el tamaño entre corchetes a continuación del nombre. Al igual que en Java, los índices de la tabla comienzan por cero.

# data[].attributes.body
Números reales

Los números reales se definen con “float” o “double”. La diferencia entre ambas es la precisión que ofrece su representación interna. Hay un número infinito de reales, pero se representan con un número finito de bits. A mayor número de bits, mayor número de reales se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño de estas representaciones varía de una plataforma a otra.

Algunas plataformas ofrecen números reales con tamaño mayor al “double” que se definen como “long double”. Los tamaños típicos para los tipos “float”, “double” y “long double” son 4, 8 y 12 bytes respectivamente. A continuación se muestran varias definiciones de números reales.

# data[].attributes.body
Salida de un carácter: función putchar

Mediante la función de biblioteca putchar se puede conseguir la salida de un carácter a través del dispositivo de salida estándar, usualmente el monitor. Su sintaxis es

putchar(variable);

donde variable es alguna variable de tipo carácter declarada previamente.

1. Ejemplo 1.18:

char c='a';

putchar(c);

En la primera instrucción se declara la variable c de tipo carácter. La segunda instrucción hace que se visualice el valor de c en el dispositivo de salida estándar (monitor).

# data[].attributes.body
Mediante la función de biblioteca getchar se puede conseguir la entrada de un carácter a través del dispositivo de entrada estándar, usualmente el teclado. Su sintaxis es

variable = getchar();

donde variable es alguna variable de tipo carácter declarada previamente.

1. Ejemplo 1.17:

char c;

c=getchar();

En la primera instrucción se declara la variable c de tipo carácter. La segunda instrucción hace que se lea del dispositivo de entrada estándar un carácter y entonces se le asigne a c.

# data[].attributes.body
Letras y cadenas

Las variables de tipo letra se declaran como “char”. Para referirse a una letra se rodea de comillas simples: 'M'. Como las letras se representan internamente como números, el lenguaje C permite realizar operaciones aritméticas como 'M' + 25.

Las cadenas de texto o strings son simplemente tablas de “char”. Las funciones de biblioteca para manipular estas cadenas asumen que el último byte tiene valor cero. Las cadenas de texto se escriben en el programa rodeadas de dobles comillas y contienen el valor cero al final.

# data[].attributes.body
Enteros

Se definen con “int” y admiten de forma opcional dos prefijos modificadores:

“short” y “long”: Modifica el tamaño en bits del entero. Existen por tanto tres tipos de enteros: “int”, “short int” (que se puede abreviar como “short”), y “long int” (que se puede abreviar como “long”).

El lenguaje C no define tamaños fijos para sus tipos de datos básicos. Lo único que garantiza es que un short int tiene un tamaño menor o igual que un int y este a su vez un tamaño menor o igual a un long int. Esta característica del lenguaje ha complicado la creación de programas que sean compatibles entre varias plataformas.

“unsigned”: define un número natural (mayor o igual a cero).

# data[].attributes.body
1.-Tiene un conjunto completo de instrucciones de control. 3.-Incluye el concepto de puntero (variable que contiene la dirección de otra variable). 4.-Los argumentos de las funciones se transfieren por su valor. 5.- E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones.

# data[].attributes.body
Roberto Villalobos

# data[].attributes.body
Es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

# data[].attributes.body
El nombre "C++" fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.

# data[].attributes.body
* El lenguaje C ha sido pensado para ser altamente transportable.

* Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas

* Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).

* Un sistema de tipos que impide operaciones sin sentido.

* Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.

* Acceso a memoria de bajo nivel mediante el uso de punteros

* Interrupciones al procesador con uniones.

* Un conjunto reducido de palabras clav

* Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.

* Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.

# data[].attributes.body
* Recolección de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la "libgc" desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.

* Soporte para programación orientada a objetos, aunque la implementación original de C++ fue un preprocesador que traducía código fuente de C++ a C.

* Encapsulación.

* Funciones anidadas, aunque GCC tiene esta característica como extensió

* Polimorfismo en tiempo de código en forma de sobrecarga, sobrecarga de operadores y sólo dispone de un soporte rudimentario para la programación genérica.

* Soporte nativo para programación multihilo y redes de computadores.

* Carece de instrucciones de entrada/salida, de instrucciones para manejo de cadenas de caracteres, con lo que este trabajo queda para la librería de rutinas, con la consiguiente pérdida de transportabilidad.