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//saber si estas en linux o windows
#include <iostream>
#include <windows.h>
using namespace std;
#ifdef __linux__
void sistema(){cout << "estas en linux";}
#elif __WINDOWS__
void sistema(){cout << "estas en windows";}
#else
void sistema(){cout << "NPI de en SO estas >_<";}
#endif
int main () {
sistema();
cin.ignore();
return 0;
}
Código C++:
Ver original//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++
#ifdef __cplusplus
#include <iostream>
using namespace std;
void msg(){cout << "estas usando el compilador de cpp";}
#else
#include <stdio.h>
void msg
(){ printf("estas usando el compilador de c");} #endif // __cplusplus
int main () {
msg();
return 0;
}
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/