Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/09/2014, 17:54
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Licencias/Instaladores

http://es.wikipedia.org/wiki/Preprocesador_de_C
Este código te compila tanto para c como para cpp. ¡Ojo! no digo que use el compilador de c o cpp sino que digo que usa o las funciones de c para imprimir por ejemplo, o las de c++.
En realidad en la practica no tiene utilidad el código, es solo para mostrar que puedes variar de usar código en c o cpp para imprimir.

Una aplicación mas practica de lo que me refiero es:

Código C++:
Ver original
  1. //saber si estas en linux o windows
  2. #include <iostream>
  3. #include <windows.h>
  4. using namespace std;
  5.  
  6. #ifdef __linux__
  7.     void sistema(){cout << "estas en linux";}
  8. #elif __WINDOWS__
  9.     void sistema(){cout << "estas en windows";}
  10. #else
  11.     void sistema(){cout << "NPI de en SO estas >_<";}
  12. #endif
  13.  
  14. int main () {
  15.        
  16.     sistema();
  17.  
  18.     cin.ignore();
  19.     return 0;
  20. }

Código C++:
Ver original
  1. //saber si estas usando el compilador de c o cpp, cambie la extensión del archivo .c o .cpp, o al llamar gcc o g++
  2. #ifdef __cplusplus
  3. #include <iostream>
  4. using namespace std;
  5.     void msg(){cout << "estas usando el compilador de cpp";}
  6. #else
  7.     #include <stdio.h>
  8.     void msg(){ printf("estas usando el compilador de c");}    
  9. #endif // __cplusplus
  10.  
  11. int main () {
  12.     msg();
  13.  
  14.     return 0;
  15. }

http://stackoverflow.com/questions/6...x-ifdef-switch
https://www.youtube.com/watch?v=YYfzg2ehiqg

busquen macros en C/CPP en goggle... tienen mucha potencia.

Las propias librerías traen sus macros ya pre establecidas. por ejemplo en CPP iostream tiene la macro EOF y la puedes imprimir así: cout << EOF;
EOF no es mas que un signed int de valor -1. EOF sirve para saber si has llegado al final de un fichero si lo lees carácter a carácter ¿correcto? Pero porque -1 y no un 0 u otro valor??? Por que -1 NO es un carácter asc2 ya que la tabla va de 0 a 255. Lo que hace es que hasta que no encuentre -1 seguirá leyendo caracteres.
Se usa como se describe aquí: http://www.cplusplus.com/reference/cstdio/fgetc/

En fin las macros te pueden ayudar y mucho si las sabes usar bien.

Aquí hay unas pocas macros predefinidas: http://sourceforge.net/p/predef/wiki/Home/


Última edición por vangodp; 24/09/2014 a las 18:32