精华内容
下载资源
问答
  • 函数的声明调用

    2020-05-09 07:00:07
    主调函数通过函数名调用被调函数,如果调函数有形参,则主调函数中的函数调用语句须给出对应的实际参数; 调用格式:函数名 (实参表) 调用方法: 1.有返回值: m=funMax(x,y); //表达式形式的调用 2.无返回值:...

    函数调用

    函数调用分形参和实参。
    形参:位置:出现在被调函数的定义中

    int add(int x,int y)
    

    作用:定义了函数对外的接口
    特点:局部变量
    实参:位置:出现在主调函数中
    作用:调用时,为被调函数的形参提供实际值
    特点:表达式

    函数如何调用?

    主调函数通过函数名调用被调函数,如果被调函数有形参,则主调函数中的函数调用语句须给出对应的实际参数;
    调用格式:函数名 (实参表)
    调用方法:
    1.有返回值:

    m=funMax(x,y); //表达式形式的调用
    

    2.无返回值:

    fun(a,b); //语句形式的调用
    

    1.函数无返回值情况
    函数无返回值时,函数调用的方式是语句方法,不能把它放在cout的输出流里。

    void show()
    {
    cout<<"*****"<<endl; //无返回值的函数
    }
    int main()
    {
    int i;
    for(i=1;i<=3;i++)
    {
    show();//语句调用
    }
    return 0;
    }
    

    运行结果:

    *****
    *****
    *****
    

    2.函数有返回值情况
    因为函数有返回值,所以可以把它放在cout输出流中。

    #include<iostream>
    using namespace std;
    int funMax(int x, int y)
    {
    	if (x > y)
    		return x;
    	else
    		return y;
    }
    int main()
    {
    	int i, x, y;
    	for (i = 1; i <= 3; i++)
    	{
    		cout << "输入第" << i << "组数";
    		cin >> x >> y;
    		cout << "该组数最大值是" << funMax(x, y);//有结果
    	}
    	return 0;
    }
    

    运行结果:
    在这里插入图片描述

    函数声明

    1.意义:在调用函数前后声明其返回值类型、函数名和参数;
    函数声明有助于编译器对函数参数类型的匹配检查;
    如果有声明的话,我们就可以把函数的定义写在程序代码的任何地方了。
    2.一个函数声明需要给三个关键部分
    函数的名字;函数返回值类型;调用这个函数的时候必须提供的参数的个数和参数的类型;
    函数声明的语法格式:数据类型 函数名(形参列表);
    函数声明中的“;”不可少。
    函数声明和函数定义是很相似的,就是函数声明后面要加分号,且形参名可以省略。(这个在后面会有例子)

    函数声明最佳位置

    通常将函数的声明放在主函数外,程序开始处。
    这样的话,后续任何地方都可以调用这个函数。

    #include<iostream>
    using namespace std;
    int swap(int *,int *);//这是一个指针变量
    void main()
    {
    .......
    }
    void swap(int *x,int *y)
    {
    .......
    }
    

    如果放在主调函数中,则只有主调函数能调用该函数

    #include<iostream>
    using namespace std;
    void main()
    {
    int swap(int *,int *);//这是一个指针变量
    .......
    }
    void swap(int *x,int *y)
    {
    .......
    }
    

    把上面提到过的一个例子,用函数声明一下,则变为

    #include<iostream>
    using namespace std;
    int funMax(int ,int );//省略了形参名
    int main()
    {
    	int i, x, y;
    	for (i = 1; i <= 3; i++)
    	{
    		cout << "输入第" << i << "组数";
    		cin >> x >> y;
    		cout << "该组数最大值是" << funMax(x, y);//有结果
    	}
    	return 0;
    }
    int funMax(int x, int y)
    {
    	if (x > y)
    		return x;
    	else
    		return y;
    }
    
    展开全文
  • 如何函数指针调用函数

    千次阅读 2020-07-10 09:23:48
    先举一个用函数指针调用函数的例子 int Func(int x); /*声明一个函数*/ int (*p) (int x); /*定义一个函数指针*/ p = Func; /*将Func函数的首地址赋给指针变量p*/ ... 里的int指的是函数的返回值,指要被调用的函数.
    先举一个用函数指针调用函数的例子
    int Func(int x);   /*声明一个函数*/
    int (*p) (int x);  /*定义一个函数指针*/
    p = Func;          /*将Func函数的首地址赋给指针变量p*/

    int Func(int x);

    这一句是声明一个函数,是我们要被函数指针调用的函数,而且函数名表示函数的首地址。

    int (*p) (int x);

    这里定义了一个函数指针,int (*p) (int x); 里的int指的是函数的返回值,指要被调用的函数的返回值是整形。

    int (*p) (int x); 里的*P指的是指向函数首地址的指针变量。

    int (*p) (int x); int x表示被调用的函数参数是一个且是整形。

    p = Func;

    这一句是把被调函数的首地址存在定义的指针变量里,用来指向被调函数。

    定义的函数指针和声明的函数一一对应,对照着看会很清晰。

     

    举一个完整实用简单的例子来帮助理解

    # include <stdio.h>
    int Max(int, int);  //函数声明
    int main(void)
    {
        int(*p)(int, int);  //定义一个函数指针
        int a, b, c;
        p = Max;  //把函数Max赋给指针变量p, 使p指向Max函数
        printf("please enter a and b:");
        scanf("%d%d", &a, &b);
        c = (*p)(a, b);  //通过函数指针调用Max函数
        printf("a = %d\nb = %d\nmax = %d\n", a, b, c);
        return 0;
    }
    int Max(int x, int y)  //定义Max函数
    {
        int z;
        if (x > y)
        {
            z = x;
        }
        else
        {
            z = y;
        }
        return z;
    }

    输出结果是:
    please enter a and b:5 6
    a = 5
    b = 6
    max = 6

     

    
     
    展开全文
  • C中如何调用C++函数

    2020-12-22 20:37:11
    前阵子问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父文章可以作为解答,遂拿来Mark一下。...
  • C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、...//函数声明,如果函数写在被调用处之前,可以不用声明voidmain(){inta=1,b=2,c;c=fun(a,b);...

    C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。#include<stdio.h>int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明void main(){int a=1, b=2, c;c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值}// 自定义函数funint fun(int x, int y)  // 函数首部{  // {}中的语言为函数体return x>y ? x : y;  // 返回x和y中较大的一个数}扩展资料C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。参考资料:函数调用_百度百科

    阅读全文 >

    展开全文
  • C中如何调用C++函数

    2019-11-27 13:28:44
    前阵子问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父文章可以作为解答,遂拿来Mark一下。...

    本文转自https://blog.csdn.net/fanbird2008/article/details/8787337

    前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。

    一:针对C++非成员函数情况。将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:

    // C++ code:

    extern "C" void f(int);

    void f(int i)

    {

         // ...

    }

     

    然后,你可以这样使用 f():

    /* C code: */

    void f(int);

    void cc(int i)

    {

        f(i);

       /* ... */

        }

     

    二:C++成员函数情况。当然,这招只适用于非成员函数。如果你想要在 C 里调用成员函数(包括虚函数),则需要提供一个简单的包装(wrapper)。例如:

    // C++ code:

    class C

    {

           // ...

           virtual double f(int);

    };

     

    extern "C" double call_C_f(C* p, int i) // wrapper function

    {

           return p->f(i);

    }

     

    然后,你就可以这样调用 C::f():

    /* C code: */

    double call_C_f(struct C* p, int i);

     

    void ccc(struct C* p, int i)

    {

           double d = call_C_f(p,i);

           /* ... */

    }

     

    如果你想在 C 里调用重载函数,则必须提供不同名字的包装,这样才能被 C 代码调用。例如:

    // C++ code:

    void f(int);

    void f(double);

     

    extern "C" void f_i(int i) { f(i); }

    extern "C" void f_d(double d) { f(d); }

     

    然后,你可以这样使用每个重载的 f():

    /* C code: */

    void f_i(int);

    void f_d(double);

     

    void cccc(int i,double d)

    {

           f_i(i);

           f_d(d);

           /* ... */

    }

    注意,这些技巧也适用于在 C 里调用 C++ 类库,即使你不能(或者不想)修改 C++ 头文件。

    展开全文
  • C中如何调用C++函数?

    千次阅读 2016-08-08 09:32:13
    前阵子问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父文章可以作为解答,遂拿来Mark一下。...
  • 标题 如何在C++中调用C函数? 假如在一个项目中同时包含了C和C++,当C++调用C函数时,以传统C编程#include "xxx.h"后,声明函数。由于main.cpp 是个C++代码,以C方式的调用,g++编译器无法通过编译。 解决方案一: ...
  • C中如何调用C++函数、类内函数

    千次阅读 2015-01-01 09:06:46
    在C中如何调用C++函数的问题,简单回答是将函数用extern "C"声明,当问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父文章可以作为解答,遂拿来Mark一下。   将C++函数声明为``...
  • 如何调用C++函数

    2010-10-04 13:33:00
    在C++的语言中,和一些程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,这就是程序中所谓的函数,下面就对C++中的如何调用C++函数问题进行说明。  前阵子问及一个...
  • C中如何调用C++函数

    2009-12-10 09:32:00
    转自:... 前阵子问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父文章
  • C++:如何声明和定义成员函数

    千次阅读 2015-10-28 11:29:51
    我们已经学会如何调用成员函数,那么成员函数又是如何声明和定义呢?它和普通函数有着什么异同点呢? 普通函数在使用之前必须声明和定义,成员函数也是这样。不过成员函数是属于某一个类,所以只能在类内部...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 837
精华内容 334
关键字:

如何声明被调用的函数