У меня проблема с макросом m4. Макрос
define(BARRIER, `
#if defined USE_PTHREAD_BARRIERS
barrier_wait(&$1,$2,$3);
#elif defined (USE_CENTRALIZED_BARRIERS)
central_barrier(&$1,$2,$3);
#endif
')
и в моем файле .C у меня есть
BARRIER(Global->start, P, MyNum)
, где Global->start
и P
- глобальные переменные, а MyNum - локальная переменная.
Но когда я выполню
m4 macrosfile.m4 sourcefile > outputfile
в выходном файле есть это:
#if defined USE_PTHREAD_BARRIERS
barrier_wait(&Global->start,P,);
#elif defined (USE_CENTRALIZED_BARRIERS)
central_barrier(&Global->start,P,);
Что-то не так с моим макросом или просто ограничение?
Заранее спасибо.