Programación General > Visual C++
Problemas Al Convertir Tipos
Eternal Idol:
--- Cita de: "JuanK" ---pero el codigo que genera?
--- Fin de la cita ---
Una salida por consola que dice 99 :lol: :D :lol:
Por cierto esto: printf("%s\r\n", edad); es un ejemplo de lo mismo y me imagino que lo habra probado el mundo entero. ¿Donde esta el "%s\r\n"? ¿En la luna? No, esta en alguna seccion del ejecutable con permisos de lectura B)
Genera una asignacion de la direccion de una cadena que se encuentra en memoria (en una seccion del ejecutable) a una variable local (en la pila).
Para que te des una idea es el equivalente a tener esto en assembly:
--- Código: Text --- .data sta db "%s", 13, 10, 0 stb db "Soy una cadena", 0.code push ebp mov ebp,esp push ecx mov dword ptr [ebp-4], offset stb mov eax, dword ptr [ebp-4] push eax push offset sta call _printf add esp, 8 mov esp, ebp pop ebp ret
JuanK:
he actualizado mi post anterior porque estaba incompleto.
Eternal Idol:
--- Cita de: "JuanK" --- he actualizado mi post anterior porque estaba incompleto.
--- Fin de la cita ---
No cambia nada ... ¿Esto te parece que no funciona en algun compilador?
--- Código: Text --- int edad = 110;printf("%s\r\n", edad);
Funciona perfectamente ya que esa cadena estara reservada en algun lado, donde fuera. Hasta en un ejecutable de tipo COM se podria poner dentro de la misma seccion de codigo y funcionaria.
JuanK:
claro, pero digo el ejemplo de arriba.
Eternal Idol:
--- Cita de: "JuanK" --- claro, pero digo el ejemplo de arriba.
--- Fin de la cita ---
No hay diferencia, lee las respuestas y trata de entender como funciona un ejecutable, asi te vas a dar cuenta de que no hay ninguna diferencia entre pasarle una cadena como parametro a una funcion y asignarle la direccion de comienzo de esa cadena a un puntero.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa