Otlet kellene - C macro

Csobolyó János janchika at uze.net
Wed Mar 10 23:59:23 CET 2004


Füzesi Arnold  <arno at freemail.hu> 2004.03.10. 23:42:07 +1h-kor írta:

> Volt regebben eszmefuttatas a valtozo parameterhosszusagu C makrokrol.
> Arra jutottunk, hogy nem nagyon tudjak a forditok.GCC igen, de nekem meg epp
> IAR ala kellene:
> 
> Ilyesmi celra: (formatumstringet a flash-be szeretnem atrakni)
> 
> #define mysprintf_P(vardest,formatstr,varsrc) {__flash static const char
> __formatstr[]=formatstr;sprintf_P(vardest,__formatstr,varsrc);}
> 
> mysprintf_P(obuf,"%d,%d,%d",(temp1,temp2,temp3));
> En ugy sejtem ennek mukodnie kellene, de anyazik a fordito.
> 
> (temp1,temp2,temp3) -t egy parameterkent hogy lehet atadni a makronak?
> 
> Illetve ha nincs parameter, akkor is bibi van.
> Hogy oldjam meg szerintetek?
> Tobb kulon makrot csinalni, nem elegans..Mas nem jut eszembe.
> 
> Tippek? Kosz,
> Arnold


asmben van macron beluli if annak eldontesere hogy kapot-e erteket az a
parameter


	ifnb	

ahol az nb =Not Blank


	
pl.:

ApiCall	Macro	p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13
	ifnb <p13>
		invoke	p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13
	elseifnb <p12>
		invoke	p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12
	elseifnb <p11>
		invoke	p2,p3,p4,p5,p6,p7,p8,p9,p10,p11
	elseifnb <p10>
		invoke	p2,p3,p4,p5,p6,p7,p8,p9,p10
	elseifnb <p9>
		invoke	p2,p3,p4,p5,p6,p7,p8,p9
	elseifnb <p8>
		invoke	p2,p3,p4,p5,p6,p7,p8
	elseifnb <p7>
		invoke	p2,p3,p4,p5,p6,p7
	elseifnb <p6>
		invoke	p2,p3,p4,p5,p6
	elseifnb <p5>
		invoke	p2,p3,p4,p5
	elseifnb <p4>
		invoke	p2,p3,p4
	elseifnb <p3>
		invoke	p2,p3
	elseifnb <p2>
		invoke	p2
	endif

	mov	p1,eax
	endm


biztos van c-ben is valamihasonlo


-- 



More information about the Elektro mailing list