[C] Ver identificadores de nuestro procesador, desde la línea de comandos

Iniciado por Jhonjhon_123, Febrero 23, 2010, 05:54:00 PM

Tema anterior - Siguiente tema

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

Febrero 23, 2010, 05:54:00 PM Ultima modificación: Febrero 08, 2014, 05:22:17 PM por Expermicid
¿Que son los identificadores de Procesador?

Los identificadores de procesador son constantes definidas, dependiendo de nuestra maquina. Estas constantes nos sirven para identificar fácilmente en programación el SO, la arquitectura del ordenador, o cosas tan simples como la versión de nuestro SO, el tamaño de algunos tipos de datos en nuestra maquina, entre otros.


¿Cómo puedo saber los identificadores de procesador en mi maquina?

Desde una shell tipeamos:

Código: php

cpp -dM FICHERO_VACÍO


Por ejemplo, la salida en mi maquina es:



¿Pero, y toda esa información, para que nos sirve?

Daré un ejemplo muy sencillo, pero muy útil, mas de alguno de ustedes (quienes programan) sabran que el uso de la función system no se recomienda por su portabilidad, bueno pues usando los identificadores del procesador nosotros podemos simular la portabilidad de nuestros programas, el como lo veremos mediante un código de ejemplo.


Código: c

#include <stdio.h>

#ifdef __unix__
#define LIMPIA "clear"
#endif
#ifdef __WIN32__
#define LIMPIA "cls"
#endif

int main(void)
{
printf("texto que sera limpiado\n");
system(LIMPIA);
printf("\nlimpio\n");
return 0;
}



#ifdef & #endif

Son dos de las Directivas del procesador del lenguaje C, las que nos sirven para incluir condiciones en tiempo de compilación en nuestros programas.


Es decir: en el caso de este codigo, al momento de compilar:

1º - Se realiza la inclución de la libreria stdio
2º - Se pregunta esta definido __unix__ o __WIN32__ , y dependiendo de este resultado se opta o por definir LIMPIAR como clear o cls, lo que nos resuelve el problema de la compatibilidad entre estos dos SO.

Acá unos screen's, para que vean esto en acción

En Linux






En Windows






Links Interesantes:

- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

PD: Una cita de un coment que hice en mi blog:

CitarSi nos vamos a la portabilidad en si, esto no es muy útil ya que todo esto es en tiempo de compilación, osea que para que la portabilidad sea efectiva, se debería compilar cada vez que se quiera usar el código.

Pero por ej: en mi caso en la Uni a mi para las tareas solo me piden el codigo y los profes lo compilan y prueban, en esta situación a mi se me hace muy útil :) .

Hago toda esa aclaración, porque me imagino que mas de alguno va a tener ganas de criticarme el que yo usara la palabra portabilidad al tocar este tema, es mas una forma de introducir el concepto.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos jhonjhon_123, muy buen aporte, interesante para la potabilidad entre otras utilidades!.