我有一个 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,);
我的宏有问题,或者只是一个限制?
提前致谢。