行,以往的经验教训后,。成员main性能、变数、命名等基本概念应该有一个初步的了解
下面,我们就可以开始我们自己的第一个定义的函数。
仿照头等舱、操作的第二个教训。添加一个新的项目的解决方案Lession006
第一课main.cpppublic.h复制过来
然后例如以下图示意的那样增加到项目中来:
右键单击项目 在加入栏 选择现有项
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVyZ2x1cmtlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
选择刚刚复制过来的代码,点击加入
尽管是第一个自定的函数,难度还是不要太大了,就弄一个显示斐波纳契数列的函数吧
首先将项目设置为启动项目,方便调试:
右键单击项目。选择 设为启动项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVyZ2x1cmtlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
在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就能够了
你能够试一试其它数,包含负数看看有什么结果(这是下节课的内容)
关于这节课代码的详解。我接着说,今天就到这里。
版权声明:本文博主原创文章,博客,未经同意不得转载。