zerglurker的c语言教程006——第一个函数

好了,经过之前的课程,各位对main函数、变量、命名等等基本概念应该已经有了一个初步认识

下面我们可以开始我们的第一个自定义函数了。

仿照第一课、第二课的操作,在解决方案中添加一个新项目Lession006

将第一课的main.cpp和public.h复制过来

然后如下图示意的那样加入到项目中来:

右键单击项目 在添加栏 选择现有项

选择刚刚复制过来的代码,点击添加

虽然是第一个自定的函数,难度还是不要太大了,就弄一个显示斐波纳契数列的函数吧

首先将项目设置为启动项目,方便调试:

右键单击项目,选择 设为启动项目

在main.cpp中输入如下代码:

#include <stdio.h>

int main(int argc, char* argv[], char* env[])
{
	Fibonacci(10);
	return 0;
}

void Fibonacci(unsigned int nTotal)
{
	int nFirst = 1;
	int nSecond = 1,nThird;
	unsigned int i;
	if (nTotal == 0){
		return;//如果用户要求输出的数量为0,则什么都不输出
	}
	printf("%d\n", nFirst);
	if (nTotal == 1)
	{//如果用户要求输出的数量为1,则到此为止
		return;
	}
	//先把头两个数输出出来
	printf("%d\n",nSecond);
	if (nTotal <= 2)//如果用户指定输出数量不超过2个,则到此为止
		return;
	for (i = 2; i < nTotal;i++)
	{
		nThird = nFirst + nSecond;
		printf("%d\n", nThird);
		nFirst = nSecond;
		nSecond = nThird;
	}
}
然后选择项目-生成 或者按下F7键

一切正常的话就可以看到如下编译错误:

1>------ 已启动生成:  项目: Lession006, 配置: Debug Win32 ------
1>  main.cpp
1>e:\vsproject\c-c++lession\lession006\main.cpp(5): error C3861: “Fibonacci”:  找不到标识符
========== 生成:  成功 0 个,失败 1 个,最新 2 个,跳过 0 个 ==========
为什么会报这种错误?

实际上这种错误会长期伴随你,甚至贯穿你的整个职业生涯——来自你或者你的同事。

在代码main函数中,我们调用了函数Fibonacci,就是这句代码:Fibonacci(10);

它告诉程序,我想生成包含10个数的斐波纳契数列

但是编译器解释到这里的时候,Fibonacci还没有被发现。是的,它还在后面,编译器还来不及看到它。

所以它报了一个错,因为Fibonacci这个名称我不知道是啥玩意,于是它客气的说:

1>e:\vsproject\c-c++lession\lession006\main.cpp(5): error C3861: “Fibonacci”:  找不到标识符

在 e:\vsproject\c-c++lession\lession006\main.cpp 文件的第5行,这个标识符Fibonacci,我不知道该怎么办

要学会看这些错误信息,因为它可以帮助你快速定位错误,并分析原因

现在怎么办?一个本办法是将Fibonacci代码移到main前面去。不过这样非常不好,因为如果对于一个有数百上千个函数的项目,main函数那不要到最后才能开始写。

不过也不必纠结,还有另外一个办法,就是声明函数。

找到public.h

输入如下内容:

然后在main.cpp前面加上一个包含语句:

现在编译一切就ok了

因为当编译器解释到Fibonacci(10);的时候,它就知道,这是一个函数调用,参数是无符号整数。

这一切都是public.h文件告诉它的

#include 的含义是,告诉编译器你先读我指定的文件,然后再接着往下读我的代码。

按下ctrl+F5就可以看到如下内容:

正好是10个斐波纳契数

如果你想要更多,那么只需要更改Fibonacci(10);这句中的10就可以了

你可以试一试其他数,包括负数看看有什么结果(这是下节课的内容)

关于这节课代码的详细解释,我下次再说,今天就到这里了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值