函数的声明与定义

1.简介

函数定义:用于确定函数功能,一个完整的函数定义包括函数名称,形参类型,函数体等。

函数声明:C语言编译系统是由上往下编译的,如果被调函数A放在主调函数B后面,则需要声明函数A,否则编译系统无法识别函数。

注:函数声明一般写在主调函数前.

2.方法

函数定义:

返回类型+函数名称(参数类型1 参数1,参数类型 2 参数2,....){

函数体;

}

函数声明:

返回类型+函数名称(参数类型1 参数1,参数类型2 参数2);

返回类型+函数名称(参数类型1,参数类型2,....);

3.实例

#include<iostream>
using namespace std;
void exchange(int ,int );              //函数的声明
void exchange1(int&,int& );
void f(int );
void f1(int);
void main(){
    int a = 3;
    int b = 4;
    exchange(a, b);                          //此时有前缀操作x=a,y=b,此时x=3,y=4,对a和b本身不操作
    printf("a=%d,b=%d\n", a, b);
    exchange1(a, b);                       //此时有前缀操作x=&a,y=&b,此时x,y指向a,b的地址,即对a,b本身操作
    printf("a=%d,b=%d\n", a, b);
}
void exchange(int x, int y){            //函数定义
    int temp = x;
    x = y;
    y = temp;
    printf("x=%d,y=%d\n", x, y);
}
void exchange1(int &x, int &y){         //函数定义
    int temp = x;
    x = y;
    y = temp;
    printf("x=%d,y=%d\n", x, y);
}

时间: 2024-10-05 11:49:02

函数的声明与定义的相关文章

模板类和模板函数的声明和定义分开文件写的方法

据说模板类和模板函数的声明和定义要写在同一个文件. 不然编译会出现"未定义的引用". 其实是有解决方法的. 模板类 template class CNNConvLayer<double>; 就是 template class className<typeName>; 模板函数 template void poolBackPropForKernal<double>(double*, double*, int, int, double*, double*

(转载)你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义

你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义 第5章 用函数封装程序功能 在完成功能强大的工资程序V1.0之后,我们信心倍增,开始向C++世界的更深远处探索. 现在,我们可以用各种数据类型定义变量来表达问题中所涉及的各种数据:用操作符连接这些变量对其进行运算:用程序流程控制结构来控制对这些数据的复杂处理过程,最终实现对数据进行处理得到结果,而这就是程序了.但是,随着要处理的问题越来越复杂,程序的代码自然也就会越来越复杂.如果把所有程序代码都放到main()主函数中,主函数也会越

你好,C++(24)好大一个箱子!5.1.1 函数的声明和定义

第5章 用函数封装程序功能 在完成功能强大的工资程序V1.0之后,我们信心倍增,开始向C++世界的更深远处探索. 现在,我们可以用各种数据类型定义变量来表达问题中所涉及的各种数据:用操作符连接这些变量对其进行运算:用程序流程控制结构来控制对这些数据的复杂处理过程,最终实现对数据进行处理得到结果,而这就是程序了.但是,随着要处理的问题越来越复杂,程序的代码自然也就会越来越复杂.如果把所有程序代码都放到main()主函数中,主函数也会越来越复杂.这就像将所有东西都堆放到一个仓库中,随着东西越堆越多,

C语言,函数的声明与定义

函数声明与定义 变量: 在讲变量前,先讲一下变量的声明和定义这两个概念. 声明一个变量,意味着向编译器描述变量的类型,但不为变量分配存储空间. 定义一个变量,意味着在声明变量的同时还要为变量分配存储空间,在定义变量的同时为变量初始化. 局部变量:通常只定义不声明. 全局变量:通常在源文件中定义,在头文件中声明. 在一个函数内部定义的变量成为局部变量,它在本函数内有效. 函数中的局部变量,如果不定义类型,其缺省是自动变量auto, 例如:int a,b=2; 其等价于auto int a,b =

C++模板编程:如何使非通用的模板函数实现声明和定义分离

我们在编写C++类库时,为了隐藏实现,往往只能忍痛舍弃模版的强大特性.但如果我们只需要有限的几个类型的模版实现,并且不允许用户传入其他类型时,我们就可以将实例化的代码放在cpp文件中实现了.然而,当我们又需要针对特定类型进行模版偏特化时,由于gcc编译器不允许直接在类中进行偏特化声明,所以正确的写法变得比较复杂.本文通过一个简单的求log2函数的例子,提供了一个在cpp中同时进行偏特化和实例化的一般写法,并且可以使用static_assert在编译期检查参数的实现. 现在假设我们有一个叫做"Ma

函数的声明和定义的区别

函数声明和定义的区别(1) C语言编译系统是由上往下编译的.一般被调函数放在主调函数后面的话,前面就该有声明.不然C由上往下的编译系统将无法识别.正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次. 函数声明由函数返回类型.函数名和形参列表组成.形参列表必须包括形参类型,但是不必对形参命名.这三个元素被称为函数原型,函数原型描述了函数的接口.定义函数的程序员提供函数原型,使用函数的程序员就只需要对函

2.4 函数的声明与定义

函数可以先声明后定义,如下: #include<iostream> int show(int, int);//函数声明 int main(){ int a = 1, b = 2, c; c = show(a, b); std::cout << c << std::endl; } //函数定义 int show(int a, int b){ return a + b; }

成员函数声明与定义

在C++中函数有声明部分和定义部分,这样可以更清晰的阅读程序,在一个类的内部声明函数,在类的外部写函数的实现. 不然就会报错. #include<iostream.h> class Humn{ private : int height; public : void set_height(int h); int show(); }; void Humn::set_height(int h){ if(h>0 && h<100) { height = h; }else{

【零基础学习iOS开发】【02-C语言】11-函数的声明和定义

在上一讲中,简单介绍了函数的定义和使用,只要你想完成一个新功能,首先想到的应该是定义一个新的函数来完成这个功能.这讲继续介绍函数的其他用法和注意事项. 一.函数的声明 1.在C语言中,函数的定义顺序是有讲究的:默认情况下,只有后面定义的函数才可以调用前面定义过的函数 1 int sum(int a, int b) { 2 return a + b; 3 } 4 5 int main() 6 { 7 int c = sum(1, 4); 8 return 0; 9 } 第5行定义的main函数调用