cpp2html 0.1-alpha © 2002 Andrea Leofreddi. To get the source click here

// 2.x: funzionalita' del preprocessore
#include <iostream>

// Costanti
#define PROVA			3
const int		prova(3);

// Macro
#define POTENZA(a)			(a * a)
#define POTENZA2(a)			((a) * (a))
inline int potenza(int a) { return a * a; }

// Direttive #ifdef e compilazione condizionale
#define FLAG 				
const int		flag(1);

int main() {
	//  Define e const
	// ----------------
	int a(PROVA);
	int b(prova);

	cout << "C: " << a << endl;
	cout << "C++: " << b << endl;

	//  Macro e inline
	// ----------------

	// C-Style
	cout << "C: " << POTENZA(a) << endl;
	cout << "C: " << POTENZA(a + 1) << endl;
	cout << "C: " << POTENZA2(a) << endl;
	cout << "C: " << POTENZA2(a + 1) << endl;
	// C++-Style
	cout << "C++: " << potenza(a) << endl;

	//  Compilazione condizionale
	// ---------------------------

	// C-Style
#ifdef FLAG
	cout << "C: Codice COMPILATO perche' FLAG e' definito!\n";
#endif

	// C++-Style
	if(flag) {
		cout << "C++: Codice COMPILATO perche' flag e' diverso da 0!\n";
	}

	//  Casi utili delle macro
	// ------------------------
	
	cout << "Questa riga e' la riga " << __LINE__ << " del file " << __FILE__ << endl;
}