知識社群登入
位置: AutoCAD開放式教學 > 討論區 > 討論
#define 需要注意的事項
1樓
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define pi 4.0*atan(1.0)
// 因為 沒有加上 括號,很容易 出現錯誤



int main()
{
double x, y, z, z1, z2;

// 60度角的 直角三角形,1:sqrt(3):2
x= 60.0;
y= sin(x/180.0*pi);
printf("y= %.6lf\n", y);// y= 0.866...
system("pause");

z= asin(y);
z1= z/pi*180.0;
z2= z/(pi)*180.0;

printf("z1= %.22lf, z2= %.22lf\n", z1, z2);
system("pause");
return(0);
}

2樓
#define pi (4.0*atan(1.0))

是 字串的取代。
他,不是 事先把答案算出來,帶入。

他,是直接把 後面的字串
(4.0*atan(1.0))

取代 前面的 
pi

所以,如果後面的程式行

y= x/pi*180.0;

就會變成

y= x/4.0*atan(1.0)*180.0;

所以,就錯掉 了