Demo1.m

一个基础的函数定义

#import<Foundation/Foundation.h>
//定义一个返回值为int类型的,名为max的函数。传入的参数为两个int型数据
int max(int x,int y)
{
int z=x>y?x:y;
return z;//返回结果
}
int main(int argc,char * argv[])
{
@autoreleasepool{
int a=;
int b=;
int result=max(a,b);//将a,b传入max函数,得到的返回值赋值给result
NSLog(@"%d",result);//输出result的值
}
}

Demo2.m

需要注意的地方

1.当函数指定的返回值类型和函数内return的值的类型不一样时,以函数指定的返回值类型为准

2.定义函数尽量定义在main函数前,虽然在Xcode中放在main函数后也可以,但是这并不符合C99标准,在其它运行环境中可能就会报错

(如果有强迫症或其它原因,一定要把函数放在在main函数后面,并且又想保持语言的规范性,那么请看Demo3.m)

3.如果函数没有返回值,一定要明确指定函数返回值类型为void

#import<Foundation/Foundation.h>
int main(int argc,char * argv[])
{
@autoreleasepool{
NSLog(@"通过调用函数,返回的值为:%f",demo_method(,));//输出demo_method的值
}
}
//定义一个返回值为int类型的,名为demo_method的函数。传入的参数为两个int型数据
int demo_method(int x,int y)
{
float z=x/y;
NSLog(@"在函数内,还未返回时的值为:%f",(float)z);//输出demo_method的值//其中float是强制数据类型转换
return z;//返回结果
}

Demo3.m

函数声明

好吧,其实Demo3.m和Demo2.m没什么差别,只是在main函数前把自定义函数事先声明了一下,让编译器知道我拥有一个叫demo_method的函数。声明格式很简单,看Demo3.m第一行代码就知道了

当然也可以写成

int demo_method(int,int);

也就是说形参列表不指定形参名,而是直接指定形参类型就OK了

int demo_method(int x,int y);
int main(int argc,char* argv[])
{
@autoreleasepool {
NSLog(@"The max is:%d.\n",max(, ));
NSLog(@"%@",sayHi(@"Kitty"));
NSLog(@"通过调用函数,返回的值为:%d",demo_method(,));//输出demo_method的值
}
return ;
}
int demo_method(int x,int y)
{
float z=(float)x/y;
NSLog(@"在函数内,还未返回时的值为:%f",z);//输出demo_method的值
return z;//返回结果
}

Objective-C之定义函数的更多相关文章

  1. Entity Framework 6 Recipes 2nd Edition(11-1)译 -> 从“模型定义”函数返回一个标量值

    第11章函数 函数提供了一个有力代码复用机制, 并且让你的代码保持简洁和易懂. 它们同样也是EF运行时能利用的数据库层代码.函数有几类: Rowset Functions, 聚合函数, Ranking ...

  2. Entity Framework 6 Recipes 2nd Edition(11-2)译 -> 用”模型定义”函数过滤实体集

    11-2. 用”模型定义”函数过滤实体集 问题 想要创建一个”模型定义”函数来过滤一个实体集 解决方案 假设我们已有一个客户(Customer)和票据Invoice)模型,如Figure 11-2所示 ...

  3. Entity Framework 6 Recipes 2nd Edition(11-2)译 -> 为一个”模型定义”函数返回一个计算列

    11-3. 为一个”模型定义”函数返回一个计算列 问题 想从”模型定义”函数里返回一个计算列 解决方案 假设我们有一个员工(Employee)实体,属性有: FirstName, LastName,和 ...

  4. Entity Framework 6 Recipes 2nd Edition(11-4)译 -> 在”模型定义”函数里调用另一个”模型定义”函数

    11-4.在”模型定义”函数里调用另一个”模型定义”函数 问题 想要用一个”模型定义”函数去实现另一个”模型定义”函数 解决方案 假设我们已有一个公司合伙人关系连同它们的结构模型,如Figure 11 ...

  5. Entity Framework 6 Recipes 2nd Edition(11-5)译 -> 从”模型定义”函数返回一个匿名类型

    11-5. 从”模型定义”函数返回一个匿名类型 问题 想创建一个返回一个匿名类型的”模型定义”函数 解决方案 假设已有游客(Visitor) 预订(reservation)房间(hotel ) 的模型 ...

  6. Entity Framework 6 Recipes 2nd Edition(11-6)译 -> 从一个”模型定义”函数里返回一个复杂类型

    11-6.从一个”模型定义”函数里返回一个复杂类型 问题 想要从一个”模型定义”函数返回一个复杂类型 解决方案 假设我们有一个病人(patient)和他们访客(visit)的模型,如 Figure 1 ...

  7. Javascript学习笔记:3种定义函数的方式

    ①使用函数声明语法定义函数 function sum(num1,num2){ return num1+num2; } ②使用函数表达式定义函数 var sum=function(num1,num2){ ...

  8. 应用C#和SQLCLR编写SQL Server用户定义函数

    摘要: 文档阐述使用C#和SQLCLR为SQL Server编写用户定义函数,并演示用户定义函数在T-SQL中的应用.文档中实现的 Base64 编码解码函数和正则表达式函数属于标量值函数,字符串分割 ...

  9. python--基础学习(二)判断 、循环、定义函数、继承、调用

    1.判断 if.elif 代码示范 # coding=utf-8 score = 90 if (score>=90): print("完美") print("优秀& ...

  10. SQL——用户定义函数

    根据用户定义函数返回值的类型,可将用户定义函数分为如下三个类别: (1) 返回值为可更新表的函数 若用户定义函数包含单个 SELECT 语句且该语句可更新,则该函数返回的表也可更新,这样的函数称为内嵌 ...

随机推荐

  1. 【贪心】Codeforces Round #436 (Div. 2) D. Make a Permutation!

    题意:给你一个长度为n的数组,每个元素都在1~n之间,要你改变最少的元素,使得它变成一个1~n的排列.在保证改动最少的基础上,要求字典序最小. 预处理cnt数组,cnt[i]代表i在原序列中出现的次数 ...

  2. 【树形dp】hdu6035 Colorful Tree

    非常棒的题解,我就不复述了:http://blog.csdn.net/Bahuia/article/details/76141574 O(n) #include<cstdio> #incl ...

  3. [Luogu1462]通往奥格瑞玛的道路

    题目大意: 一个n个点,m条边的图,每个边有一个边权,每个点也有一个点权. 现在要找一条从1到n的路径,保证边权和不超过b的情况下,最大点权尽量小. 问最大点权最小能是多少? 思路: 二分答案,然后D ...

  4. Erlang学习记录(二)——基本数据类型

    Erlang可以说和我以前接触过的语言都大不相同,这个从它的类型定义就可以看出来...反正学起来觉得既不熟悉,也不亲切,我估计在用Erlang写应用的时候,整个编程思路都要变一下了.不过存在即是合理的 ...

  5. Java高级架构师(一)第31节:Nginx简介、安装和基本运行

    第一节:主要介绍Nginx和安装

  6. 迁移11g Rac中OCR和VOTEDISK

    环境:OEL+oracle rac 11.2.0.3 迁移描述:将ocr和votedisk从+DATE上迁移到+OCR_VOTE上: 操作如下: [root@ora2 ~]$ /u01/app/11. ...

  7. http://www.pass.org

    http://www.pass.org/Learning/Recordings/Listing.aspx?category=conferences

  8. XMPP资源绑定(Resource Binding)与单台设备登录控制

    原文:http://blog.csdn.net/brasbug/article/details/26353511 一个XMPP的账号由三部分组成: 用户名(user/node),域名(domain)和 ...

  9. OE_ORDER_PUB.PROCESS_ORDER to Apply hold on a sales order

    PURPOSE: This post is to provide a sample script to Apply hold on a sales order using an API OE_ORDE ...

  10. checkbox复选框居中

    选项框居中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...