C++关于函数声明定义的位置

本文探讨了C语言中函数声明和定义的位置灵活性。通过代码示例说明,函数定义可以放在main函数之前或之后,只要确保在调用前编译器能获取到函数信息即可。C89标准要求局部变量在块开始时声明,而C99及C++则允许在块内任意位置声明。理解这一规则有助于避免编程时的误解。
摘要由CSDN通过智能技术生成

不知道刚开始学函数这块时,总以为要把函数声明放在函数定义前面,甚至有一种陷入框架的感觉,所以在此对此进行一下反思:

根据C89规定,在任何执行语句之前,在块的开头声明所有局部变量。在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。也就是说只要在你调用函数前,能让编译器找到你的调用函数的信息就可以了,并不一定是要在前面的。

我便搞了个代码试试:

代码一:

include<iostream>
using namespace std;
int max(int x, int y);//函数的声明 ,x,y是形参
int main()
{ int x, y, z;
    while (1)
    { cout << "请输入两个不同数值,以空格分开\n";
        cin >> x >> y;
        z = max(x, y); //函数的调用 ,此时x.y是实参
        cout << "最大值是:" << z << endl;
 }
}
int max(int x, int y)//函数的定义 {
    int z;
    if (x > y)
        z = x;
 else
  z = y;
 return z;
}

代码二:
#include<iostream>
using namespace std;
int max(int x, int y)//函数的定义
{
    int z;
    if (x > y)
        z = x;
    else
        z = y;
    return z;
}
int main()
{
    int x, y, z;
    while (1)
    {
        cout << "请输入两个不同数值,以空格分开\n";
        cin >> x >> y;
        z = max(x, y); //函数的调用 
        cout << "最大值是:" << z << endl;
    }
    return 0;
}
调试后发现都没有报错,都可以得到正确的运行结果。由此可以得出下面结论:程序先定义的话,可以无需对函数进行声明即可直接调用。

函数声明可以在main里面,也可以在main外面。如果放在main之前,就可以直接定义这个函数:
void func(int arg) {
…;
}//定义
 int main() {
func();//声明,非必须,不写声明也是对的。
}

如果定义放在main之后就要在main之前先声明这个函数:
void func(int);//声明,不可省略。
int main() {
}
void func(int arg) {
…;
}//定义

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值