biliotheque a inclure au cas ou ?

est ce qu ’ il est possible de faire :

#ifdef SDCARD_PIN
#define SDCARD_PIN
#include <SdFat.h> // bibliotheque pour carte SD
#endif

const byte SDCARD_PIN = 4;

void initialisationGlobal() {
	initSDCard ();
}

void initSDCard () { // disable enable SD Card
	if ( SDCARD_PIN == true ) {
		pinMode(SDCARD_PIN, OUTPUT);
		digitalWrite(SDCARD_PIN, HIGH);
	}
}

void setup() {
	initialisationGlobal();
}

void loop() {
}

ce code inclut-il la bibliotheque SDfat uniquement si la constante SDCARD_PIN est definit dans le code ?

Bonjour,

#ifdef est une instruction du préprocesseur
const byte une définition du compilateur
donc de toute façon #ifdef SDCARD_PIN ne connaitra pas la constante SDCARD_PIN

Il faudrait faire

#define SDCARD_PIN 4

#ifdef SDCARD_PIN
#include <SdFat.h> // bibliotheque pour carte SD
#endif

il faut bien sur ne pas appeler les fonctions de SdFat dans le programme si SD_CARD n’est pas défini
par exemple:

void initialisationGlobal() {
#ifdef SDCARD_PIN
	initSDCard ();
#endif
}