This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
programming technic about the macro?
- From: "Qiang Huang" <jameshq at liverpool dot ac dot uk>
- To: "Ecos-Discuss" <ecos-discuss at sources dot redhat dot com>
- Date: Mon, 28 Oct 2002 22:12:17 -0000
- Subject: [ECOS] programming technic about the macro?
Hi all:
I have looked into the IO support function and found the following:
for example(ARM):
#define HAL_READ_UINT16_STRING( _register_, _buf_, _count_) \
CYG_MACRO_START \
cyg_count32 _i_; \
for( _i_ = 0; _i_ < (_count_); _i_++) \
(_buf_)[_i_] = ((volatile CYG_WORD16 *)(_register_))[_i_]; \
CYG_MACRO_END
in the macro the tempory variable **_i_** has been declared, so if this
macro has been called twice inside one function will it cause any variable
redefinition (_i_) problem?e.g.
main()
{
HAL_READ_UINT16_STRING();
HAL_READ_UINT16_STRING();
}
Thank you.
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss