porque C es de debil tipado

Iniciado por Siempre Azul, 25 Febrero 2014, 21:55 PM

0 Miembros y 1 Visitante están viendo este tema.

Siempre Azul

hola amigos porque C es de debil tipado y C++ es de fuerte tipado?

gracias de antemano.
Siempre Azul, Nunca Rojo.

NikNitro!

Porque permite usar algunas variables de un tipo 'x' como si fueran otro tipo 'y'

Salud

Siempre Azul

Cita de: shitoman en 25 Febrero 2014, 21:55 PM
hola amigos porque C es de debil tipado y C++ es de fuerte tipado?

gracias de antemano.

cuales son esas variables porque yo he probado varias y no deja, y si es como dices entonces C++ es de tipado debil ya que es una expansion de C
Siempre Azul, Nunca Rojo.

amchacon

Supongo que por el encapsulamiento y porque cada objeto creado con class es único y no se puede transformar (salvo que te defines un operador de conversión).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

engel lex

wiki dice

y es estatico que es
CitarSe dice de un lenguaje de programación que usa un tipado estático cuando la comprobación de tipificación se realiza durante la compilación, y no durante la ejecución.

qué significa débilmente tipado y estático realmente?
que si hacemos

Código (cpp) [Seleccionar]

int a = 4;
char b = '5';
float c;
c= a + b;
printf("%f", c );


eso da 57.0

eso lo hace débilmente tipado, permite sumar valores de diferentes tipos y da una respuesta "inesperada", y si, efectivamente c++ también es débilmente tipado

es estático, porque el solo chequea los tipos al tiempo de compliación, es decir, esos tipicos errores "cannot convert constant *char to *char" pero no los revisa cuando se está ejecutado (como en ese código de arriba)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Siempre Azul

Cita de: engelx en 26 Febrero 2014, 01:31 AM
wiki dice

y es estatico que es
qué significa débilmente tipado y estático realmente?
que si hacemos

Código (cpp) [Seleccionar]

int a = 4;
char b = '5';
float c;
c= a + b;
printf("%f", c );


eso da 57.0

eso lo hace débilmente tipado, permite sumar valores de diferentes tipos y da una respuesta "inesperada", y si, efectivamente c++ también es débilmente tipado

es estático, porque el solo chequea los tipos al tiempo de compliación, es decir, esos tipicos errores "cannot convert constant *char to *char" pero no los revisa cuando se está ejecutado (como en ese código de arriba)
no entiendo porque da 57?, si pascal es muy parecido a C y es considerado de fuerte tipado porque C no lo es?
Siempre Azul, Nunca Rojo.

dRak0

Simple , porque b es un char , entonces '5' es igual a 53(Ascii) => c=53+4 => c=57
Si c era un float => c=57.0

engel lex

Cita de: shitoman en 26 Febrero 2014, 02:11 AM
no entiendo porque da 57?,

XD repito mi texto
Citarpermite sumar valores de diferentes tipos y da una respuesta "inesperada"

es como dice __libc_start_main pero a eso me referia con respuesta inesperada...

Cita de: shitoman en 26 Febrero 2014, 02:11 AM
si pascal es muy parecido a C y es considerado de fuerte tipado porque C no lo es?
1- pascal parecido a C? es como que digas que VB6 es parecido a C XD
2- depende de como sea compilado, es inherente al lenguaje, C tiene mucho "huecos" de seguridad, que en realidad son atajos de eficiencia, el lenguaje evita hacer ciertas comparaciones porque las asume ciertas en pro de la velocidad (lo programaron asumiendo que quien programara con el sabia lo que hacia), tal vez pascal el creador quiso hacer un lenguaje más "seguro" con respecto a eso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

amchacon

Cita de: engelx en 26 Febrero 2014, 01:31 AMes estático, porque el solo chequea los tipos al tiempo de compliación, es decir, esos tipicos errores "cannot convert constant *char to *char" pero no los revisa cuando se está ejecutado (como en ese código de arriba)
Ojo, que la sobrecarga de funciones/operadores de C++ te proporciona unas excelentas herramientas para detectar estas cosas en tiempo de compilación.

De hecho, ese es el mecanismo que usa cout.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

engel lex

Cita de: amchacon en 26 Febrero 2014, 02:37 AM
Ojo, que la sobrecarga de funciones/operadores de C++ te proporciona unas excelentas herramientas para detectar estas cosas en tiempo de compilación.

De hecho, ese es el mecanismo que usa cout.

dirás en tiempo de ejecución?

y si, hay herramientas para eso... pero es justamente por lo que digo... el lenguaje se hizo para que fuera rápido y efectivo, las validaciones van de tu parte...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.