5520

mon ancien collègue dont j'ai repris le code n'aimait pas mplab.

il a donc fait une solution visual studio pour éditer le code.

et il a voulu tester la compilation du code sous win32 pour vérifier qu'il écrivant pas de betises

sauf que le code est bourré de trucs dédiés à l'embarqué, avec des pragma et tout.

et il a foutu des #ifndef _WIN32 partout dans le code.
Et il considère que les trucs de préprocesseur sont des instructions et qu'il faut donc indenter, par exemple
void foo(void)
	{
	bar();
	baz();
	#ifdef GTFO
		boo();
	#endif
	}


QA8a

5521

Je le comprends, mais j'ai pas osé perso grin
Ce MPLAB est toujours aussi pourri que quand je l'utilisais? (version 8.5 je crois)
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

5522

il l'est toujours, mais au moins, codeblocks peut être configuré pour utiliser c18 en backend, et du coup pas besoin de toute cette merdasse.

ah et oui, j'ai oublié, il a modifié le c018i.c du compilateur pour supporter notre bootloader et ajouter une ISR, au lieu de mettre le fichier dans le projet et le mentionner dans le linker script.
Du coup à chaque make, y'avait un prebuild.bat qui allait fister le c018i.o du compilateur en le remplaçant en live pour tous les projets qui utilisent le compilateur tritop

MAIS PUTAIN POURQUOI T'AS VOULU FAIRE DE L'EMBARQUE ALORS QUE T'ETAIS UN SPECIALISTE DU PYTHON!!one (et que t'avais le choix)

5523

Ben le problème c'était de pouvoir flasher directement pour tester, d'avoir le débogueur intégré, tout ça qui faisait que MPLAB restait indispensable :/
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

5524

mplab est capable de charger un .hex ou un .coff (avec les symboles)

et au pire si on veut déboguer les sources, on fait _QUE_ ça dans mplab, mais quand on change d'IDE, on garde le même compilo!

5525

squalyl (./5520) :
mon ancien collègue dont j'ai repris le code n'aimait pas mplab.
Ça montre qu'il a encore du goût.
squalyl (./5520) :
il considère que les trucs de préprocesseur sont des instructions et qu'il faut donc indenter
Et ? Ça me semble pas aberrant, j'ai déjà fait ça aussi pour améliorer la visibilité. Comparé à la syntaxe ignoble que vous utilisez (cf un de tes vieux posts), c'est que dalle tongue
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5526

nooooo c'est illisible justement ! angry

les directives ne sont pas des instructions d'ouverture de blocs !

(la syntaxe le format est ignoble mais on s'y est fait , c'est pas le pire )
(pour mplab: certes, mais pas pour tomber dans visual studio cheeky)

5527

squalyl (./5526) :
les directives ne sont pas des instructions d'ouverture de blocs !
Certes. Mais conceptuellement, ça équivaut à un if. Bref indenter ou pas, c'est discutable.

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5528

ben non, un #undef ne correspond pas à un if du tout embarrassed

5529

le préprocesseur n'est pas du C, c'est un machin inventé pour permettre les inclusions et le trifouillage macroesque, ce n'est pas du code, mais de l'activation conditionnelle de code. des balises HTML en fait.

c'est probablement discutable mais moi j'ai décidé que ça rentrait pas dans les intendations.

sinon c'est illisible. Imagine:

int foo(int bar) {
	#ifdef blabla
		if(testalakon) {
	#endif
		trucmuche();
		deskilometresdecode();
	#ifdef trucmuche
		}
	#endif	
}


pourquoi le if est au même niveau que le code qu'il contient?
pourquoi y'a un seul niveau d'imbrication, mais deux tabs de différence entre les accolades fermantes?

Dans un code méga long, tu te dis mais bordel il est où le bloc ouvrant que j'ai oublié de fermer?

alors que
int foo(int bar) {
#ifdef blabla
	if(testalakon) {
#endif
		trucmuche();
		deskilometresdecode();
#ifdef trucmuche
	}
#endif	
}

est bien plus cohérent au niveau de l'indentation des blocs, et on voit très bien que le if () n'est activé que si blabla est défini.

5530

Déjà t'as choisi un cas à la con, quand même cheeky

e(); deskilometresdecode(); } }
Ensuite y'a moyen de l'écrire plus proprement : int foo(int bar) 
{ 
    #ifdef blabla
        if(testalakon)
    #endif
    {
        trucmuch
D'ailleurs, si tu as des variables locales à ton bloc if(), tu ne peux pas faire autrement.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5531

5532

c'est même franchement ignoble grin

5533

int foo(int bar) 
{ 
  #ifdef blabla
    if(testalakon)
  #endif
    {
        trucmuche(); 
        deskilometresdecode(); 
    }
}
?
avatar

5534

!
Sinon on peut aussi désolidariser le dièse.

5535

5536

tout ça ne serait jamais arrivé en java embarrassed

5537

Ni en PHP cheeky
avatar

5538

#trisick#

5539

./5536 sisi trioui

on a un projet java préprocessé par cpp grin

5540

#trieek#

5541

Cela dit, il faudrait parfois avoir des #ifdef en PHP, parce que certaines fonctions sont Windows only ou Linux only, voire changent de comportement suivant le système...
avatar

5542

Zerosquare (./5530) :
Déjà t'as choisi un cas à la con, quand même cheeky

uche(); deskilometresdecode(); } }
Ensuite y'a moyen de l'écrire plus proprement : int foo(int bar) 
{ 
    #ifdef blabla
        if(testalakon)
    #endif
    {
        trucm
D'ailleurs, si tu as des variables locales à ton bloc if(), tu ne peux pas faire autrement.


Un petit
int foo(int bar) 
{ 
    #ifdef blabla
        if(testalakon)
    #else
        do
    #endif
    {
        trucmuche(); 
        deskilometresdecode(); 
    }
    #ifndef blabla
        while(0);
    #endif
}


est recommandé trigic
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

5543

Pen^2 (./5536) :
tout ça ne serait jamais arrivé en java embarrassed

En java au lieu d'avoir:
LogDebug("fuck");
Tu as:
Logger logger = Logger.getLogger(MaClasse.getName());
if (logger.isEnabledFor(Level.DEBUG)) {
    logger.log(Level.DEBUG, "fuck");
}
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

5544

tricol ?

5545

Bah t'es obligé si tu veux pas de préprocesseur.

Sinon:
http://www.gamaniak.com/image-5590-facebook-jesus.html
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

5546

c'est pas vrai et en plus c'est faux! (grin)

SEVERE, "message");netbeans autogénèreLogger.getLogger(TroKlass.class.getName()).log(Level.
tName()).severe("message");et on peut le simplifier enLogger.getLogger(TroKlass.class.ge

5547

Godzil : t'as pas encore pire ? grin

(enfin si tu étais sérieux, je ne vois pas à quoi sert le do/while ; c'est un hack connu quand tu veux pouvoir utiliser break pour quitter un bloc, mais break ne marche pas dans un if, donc ce n'est pas logique)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

5548

./5545 : eskellent
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5549

avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5550

//============================================================================
//============================================================================
//							=======================================
//							===									===
//							===		PRAGMA GLOBAL VARIABLES		===
//							===			 (defined in .c)		===
//							===									===
//							=======================================
//============================================================================
//============================================================================

//============================================================================================
//============================================================================================
#pragma udata
#pragma udata sgpr9
uchar gBLDbgByte;


//============================================================================================
//============================================================================================
//								===============================
//								===							===
//								===		rBootLoader			===
//								===							===
//								===============================
//============================================================================================
//============================================================================================
#pragma code rBootLoader=0x00DC00
//============================================================================================
//============================================================================================


//============================================================================
//> BootLoader
/*============================================================================
*//**
	\brief		Copy Memory from the Appli part to the OS Part 
			
	\details	Copy Memory from the Appli part to the OS Part 
				The pages in OZS are erased one by one before the copy
				The first page is deal last

	\param	(none)	

	\return	(none)	
**//*
============================================================================*/
void BootLoader(void)
	{
etc etc etc
	
gol