我寫了這個代碼:爲什麼在代碼中使用宏會導致錯誤,我該如何解決?
#include <stdio.h>
#define fctrl(N) ((N==1)? (N) : (N*fctrl(N-1)))
int main()
{
int m,n=7;
m = fctrl(n);
printf("fctrl is %d\n",m);
return 0;
}
在編譯時,我得到了以下錯誤:
/tmp/ccRODXnZ.o: In function `main':
/home//Desktop/fctrl/fctrl.c:8: undefined reference to `fctrl'
collect2: error: ld returned 1 exit status
爲什麼顯示這個錯誤,我該怎麼解決這個問題?
Makros do not recuesively。 –
非常感謝。 @Stephan Lechner – Tree
謝謝@ Lazcano – Tree