标题:error C2065: 'exp' : undeclared identifier 错误原因 麻烦各位!
只看楼主
skysunny
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-28
 问题点数:0 回复次数:2 
error C2065: 'exp' : undeclared identifier 错误原因 麻烦各位!
我已经有了下列的头文件,
#include  <stdio.h>
#include  <stdlib.h>
#include  <math.h>
#include  <string.h>
#include  <time.h>
#include  <fstream.h>
#include  <stdafx.h>
有了下面的宏定义
#define gaosi(x,y,z)    exp(-1.*((double)(x)-(double)(y))*((double)(x)-(double)(y))/((double)(z)*(double)(z)))
为什么在下面调用中会产生error C2065: 'exp' : undeclared identifier 的错误。
for(i=0;i<INPUT;i++)
      for(j=0;j<K;j++)
           { u[i][j]=gaosi(x[q][i],m[i][j],b[i][j]);
                if(u[i][j]==0)
                u[i][j]=pow(10,-300);
               }
搜索更多相关主题的帖子: identifier exp undeclared 麻烦 
2008-10-29 18:53
wsq1986
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-10-13
得分:0 
宏定义和函数是有区别的!
宏定义一般用于替换,完全的替换! 例如在求圆时 #define pi 3.1415  那样你就可以直接写pi代替写3.1415这么长的数字 而且在你需要调整精度时可以直接修改#define里pi的值!在你程序里当出现gaosi(x,y,z)那么在编译时就会替换成你那冗长的数字表达式.
你在程序中把宏定义直接当成函数使用了 还向宏定义的gaosi(x,y,z)类似的传入了参数 这是不对的! 建议你把gaosi(x,y,z)写成函数
2008-11-04 23:09
scheelite
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-11-5
得分:0 
宏展开是 预定义 命令.
好象是在编译 前进行,.


我觉得 带参数的 宏 不要带 库函数.简直和没说一样 

乱啊,弄成函数算了. 
2008-11-05 16:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-241354-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.657564 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved