• C++程序设计入门(上) 函数学习


    局部变量和全局变量的访问:

    全局变量的作用域时全局,局部变量的作用域是局部,若全局和局部的变量名相同的话,局部变量的改变不会引起全局变量的改变
    #include<iostream> int a=1; int main() { int a=10; std::cout << a << std::endl; std::cout << ::a << std::endl; return 0; }

    局部变量名与全局变量名相同时, 可使用 :: 访问全局变量          

    重载函数:

    已知一个程序

    int max(int num1, int num2)

    {

    if (num1 > num2) return num1;

    else return num2;

    }

    如果遇到浮点数要比大小怎么办?

    解决方法是方法是生成 一个同名不同参数的函数

    编译器如何匹配重载函数调用?  看参数:1. 个数    2.类型    3.顺序

    #include<iostream>
    using namespace std;
    int max(int num1,int num2)
    {
        if(num1>num2)
        return num1;
        else
        return num2;
    }
    double max(double num1,double num2)
    {
        if(num1>num2)
        return num1;
        else
        return num2;
    }
    int main()
    {
        cout << max(1,2) << endl;
        cout << max(3.4,5.2) << endl;
        return 0;
     } 

    默认参数值:

    C++ allows you to declare functions with default argument values. (可以声明带默认参数值的 函数)

     The default values are passed to the parameters when a function is invoked without the arguments. (无参调用函数时,默认值会 被传递给形式参数)

    定义时要注意:参数列表中默认值参数应该后置

    错误的代码:

    1 void t1 (int x, int y=0, int z);
    2 void t2 (int x, int y=0, int z);

    正确的代码:

    1 void t3 (int x, int y=0, int z=0); 
    2 void t4 (int x=0, int y=0, int z=0);

    调用时需要注意:

    参数列表中实参应该前置

    错误代码:

    t3 (1, , 20); 
    t4 ( , , 20);

    正确代码:

    t3 (1);    // y,z: default value 
    t4 (1, 2); // z:   default value 

    内联函数:

    Using functions in a program: 

    Advantages(优点): 易读易维护 

    Drawbacks (缺点): 运行时性能开销 • 函数调用时:参数及部分CPU寄存器的 寄存器内容进栈,控制流跳转 • 函数返回时:返回值及寄存器值出栈, 控制流跳转

    Inline functions  目的:减小性能开销

     方法:代码插入到调用处

     结果:导致程序变大

    用法:在函数前加关键字inline

    inline int max (int a, int b) 
    {
     return (a > b ? a : b);
    } 

    错误的代码:

    int max (int a, int b); // Call max()
    
    
     inline int max (int a, int b) 
    { 
    return (a > b ? a : b); 
    }

    内联函数适用于短函数

  • 相关阅读:
    'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
    Tensorflow滑动平均模型解析
    [TFRecord格式数据]利用TFRecords存储与读取带标签的图片
    [TFRecord文件格式]基本介绍
    tensorflow Image 解码函数
    Tensorflow ActiveFunction激活函数解析
    tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue
    tf.train.shuffle_batch函数解析
    sparse_softmax_cross_entropy_with_logits
    softmax_cross_entropy_with_logits
  • 原文地址:https://www.cnblogs.com/wjc2021/p/10662361.html
Copyright © 2020-2023  润新知