如果未给方法指定返回类型,则编译器默认返回id类型。
如果未给函数指定返回类型,则编译器默认返回int类型。
好的策略是将函数声明放到一个头文件中,然后只将这个头文件导入(import)你的模块即可。
默认情况下,函数是外部的。即对于函数默认的作用域来说,所有与该函数链接在一起的文件中的所有函数或方法都可以调用它。通过将其定义为static函数,可以将函数的作用域限制在当前文件中。
静态函数只可以由和该函数定义位于同一文件的其他函数或者方法调用。
示例
#import <Foundation/Foundation.h>
// 定义函数
void printMessage (void)
{
NSLog(@"Programming is fun.");
}
void calculateTriangularNumber (int n)
{
int i, triangularNumber = 0;
for (i = 1; i <= n; ++i)
triangularNumber += i;
NSLog(@"Triangular number %i is %i", n, triangularNumber);
}
// 计算两个数的最大公约数
int gcd (int u, int v)
{
int temp;
while ( v != 0 )
{
temp = u % v;
u = v;
v = temp;
}
return u;
}
// 找出数组中的最小值
int minimum (int values[], int numElements)
{
int minValue, i;
minValue = values[0];
for (i = 1; i < numElements; ++i)
if (values[i] < minValue)
minValue = values[i];
return (minValue);
}
// 静态函数的作用域是当前文件
static int func()
{
return 1;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
printMessage();
calculateTriangularNumber(10);
calculateTriangularNumber(20);
calculateTriangularNumber(50);
int result;
result = gcd(150, 35);
NSLog(@"The gcd of 150 and 35 is %i", result);
}
return 0;
}