On Fri, 13 Nov 2009 08:43:14 -0000, Ulrich Eckhardt
<eckha...@satorlaser.com> wrote:
Santiago Romero wrote:
Well, In the above concrete example, that would work, but I was
talking for multiple code lines, like:
#define LD_r_n(reg) (reg) = Z80ReadMem(r_PC++)
#define LD_rr_nn(reg) r_opl = Z80ReadMem(r_PC); r_PC++; \
r_oph = Z80ReadMem(r_PC); r_PC++; \
reg = r_op
#define LOAD_r(dreg, saddreg) (dreg)=Z80ReadMem((saddreg))
#define LOAD_rr_nn(dreg) r_opl = Z80ReadMem(r_PC); r_PC++; \
r_oph = Z80ReadMem(r_PC); r_PC++; \
r_tmpl = Z80ReadMem(r_op); \
r_tmph = Z80ReadMem((r_op)+1); \
dreg=r_tmp
#define STORE_nn_rr(dreg) \
r_opl = Z80ReadMem(r_PC); r_PC++;\
r_oph = Z80ReadMem(r_PC); r_PC++; \
r_tmp = dreg; \
Z80WriteMem((r_op),r_tmpl, regs); \
Z80WriteMem((r_op+1),r_tmph, regs)
Someone writing such code and calling it C should be taken behind the
barn
and shot.
Having spent all day working on C code with *much* more complex
#defines than that, I beg to disagree. Particularly in embedded
applications, there are occasions when you absolutely must have
bits of code inlined rather than as function calls. In those
cases, declaring a function 'inline' is insufficient, as the
compiler can choose to ignore you.
In Python, however, the point is moot; you don't get to play
those games without using a separate preprocessor. I've never
particularly felt the urge to try, either.
--
Rhodri James *-* Wildebeest Herder to the Masses
--
http://mail.python.org/mailman/listinfo/python-list