Xcode #将函数导入多个源文件
我有一个头文件(Xcode #将函数导入多个源文件,xcode,ios,header,import,Xcode,Ios,Header,Import,我有一个头文件(.h),我在其中定义了一系列数学函数,例如,这一个计算大气折射 float calcAtmosRefraction(float h0) { float ref = 0.0; if (h0 > 85) { ref = 0.0; } else if (h0 > 5) { ref = (58.1 / tan(degToRad(h0)) - 0.07 / pow(tan(degToRad(h0)), 3) +
.h
),我在其中定义了一系列数学函数,例如,这一个计算大气折射
float calcAtmosRefraction(float h0) {
float ref = 0.0;
if (h0 > 85) {
ref = 0.0;
}
else if (h0 > 5) {
ref = (58.1 / tan(degToRad(h0)) - 0.07 / pow(tan(degToRad(h0)), 3) + 0.000086 / pow(tan(degToRad(h0)), 5)) / 3600;
}
else if (h0 > -0.575) {
ref = (1735 + h0 * (-518.2 + h0 * (103.4 + h0 * (-12.79 + h0 * 0.711)))) / 3600;
}
else {
ref = -20.772 / tan(degToRad(h0)) / 3600;
}
return ref; // in degrees
}
。。。在我的主
UIViewController的
实现文件中,我使用#import
添加标题。它工作正常,我可以使用这些功能。当我想在不同的UIViewController中使用这些函数时,就会出现问题。
如果我不导入#import
头,我会得到函数名的隐式声明
警告,如果我导入#import
头,我得到一个重复符号。一种方法是将.h
和.m
文件组合使用:
您的.h
应如下所示:
extern float calcAtmosRefraction(float h0);
而你的.m
应该拥有你上面所拥有的#导入.h
文件,您就可以开始了
另一种方法是将函数设置为静态
,这样它就不会被重新声明。这种方法只允许使用一个.h
文件。一种方法是将.h
和.m
文件组合使用:
您的.h
应如下所示:
extern float calcAtmosRefraction(float h0);
而你的.m
应该拥有你上面所拥有的#导入.h
文件,您就可以开始了
另一种方法是将函数设置为静态
,这样它就不会被重新声明。这种方法允许您只使用一个.h
文件。如果您的函数是在头中定义的(并且它没有位于其他位置的定义),则将其声明为静态
或内联
<> p>您会得到重复的符号错误,因为C和C++(以及扩展名、Obj-C和Obj-C++)不允许对单个函数进行多个定义。static
或inline
将消除多定义错误。如果您的函数是在标题中定义的(并且没有位于其他位置的定义),则声明它static
或inline
<> p>您会得到重复的符号错误,因为C和C++(以及扩展名、Obj-C和Obj-C++)不允许对单个函数进行多个定义。static
或inline
将消除多重定义错误。大气折射?我对这个应用程序现在的功能感兴趣吗…大气折射?男孩,我现在对这个应用程序的功能很感兴趣……这很有道理,它就像我的另一个.h/.m
文件对一样,.h
声明内容,而.m
实现它。谢谢这是有道理的,它就像我的另一个.h/.m
文件对一样,.h
声明内容,.m
实现它。谢谢