精华内容
下载资源
问答
  • 直接上代码 / static short data3[65536][128];//复原的数据 static short data4[65536][128];//原有数据 int wave=56;... 我希望sum能保存函数内部计算的结果。。。 楼主小白,请指教一下。。。

    直接上代码

    /

    static short data3[65536][128];//复原的数据

    static short data4[65536][128];//原有数据

    int wave=56;

    static double sum=0;

    double SNR;

    SNR=ErrorCalculate(data3,data4,wave,sum);

    printf("SNR=%lf\nsum,mutiplied 10^3 times then printf=%lf\n",SNR,(sum*pow((double)10,3)));

    ///

    #include "stdafx.h"

    #include "ErrorCalculate.h"

    double ErrorCalculate(short a[65536][128],short b[65536][128],int wave,static double sum)

    {

    double SNR=0;

    for (int i = 0; i 

    {

    sum+=(a[i][wave]-b[i][wave])*(a[i][wave]-b[i][wave]);

    }

    sum=sum/65536;//sum是均方值

    SNR = 10*log10((255*255) /sum );

    return SNR;

    }

    //

    这个代码,返回值SNR是对的,可是我明明声明了SUM为STATIC为何,其值依然是0?

    我希望sum能保存函数内部计算的结果。。。

    楼主小白,请指教一下。。。

    展开全文
  • C语言函数的参数不过,示例自定义函数既没有返回值,也没有参数,但是实际应用中,要解决复杂的问题,函数应该能够根据外界的输入做出相应的变化。例如,我们需要打印出 4+6 的值,相关的C语言函数可以如下定义:...

    谢邀。

    在我之前的问答里,我介绍了怎样定义自己的函数,并且给出了例子。

    C语言函数的参数

    不过,示例自定义的函数既没有返回值,也没有参数,但是实际应用中,要解决复杂的问题,函数应该能够根据外界的输入做出相应的变化。

    163593711_1_20190614121930704

    例如,我们需要打印出 4+6 的值,相关的C语言函数可以如下定义:

    163593711_2_20190614121930735

    的确,add 函数能够打印出 4+6 的值,解决了问题。但是,可能还会有类似,但不相同的问题出现,比如需要打印出 3+4 的值,这时上面定义的 add 函数就没有办法解决问题了,只能重新定义一个函数,这就非常麻烦了。

    事实上,C语言中的函数可以接收外界传入的数据,我们如下修改 add 函数:

    163593711_3_20190614121930766

    这样,add 函数解决的就不是一个问题了,而是一类问题,打印 4+6 的值只需调用 add(4, 6),打印出 3+4 的值,只需调用 add(3, 4)。

    163593711_4_20190614121930797

    C语言函数的“形参”和“实参”

    看了我之前文章的朋友应该明白,函数的参数在某种意义上也属于局部变量,在 C 语言中,函数的参数分为“形参”和“实参”。

    以上面定义的 add 函数为例,我们调用 add(4, 6) 时,函数中的参数 a 就代表 4,b 就代表 6。确切的说,当我们讨论函数中的 a 这个参数时,我们所说的“参数”是指“形参”,当我们讨论传一个参数 4 给函数时,我们所说的“参数”是指“实参”。

    但是我习惯都叫参数而不习惯总把形参、实参这两个文绉绉的词挂在嘴边儿(事实上大多数人都不习惯),可根据上下文判断指的到底是形参还是实参。

    记住这条基本原理:形参相当于函数中定义的变量,调用函数传递参数的过程相当于定义形参变量并且用实参的值来初始化。

    163593711_5_20190614121930907

    上面在 main 中调用了 add 函数,就相当于在 add 函数中执行了如下语句:

    163593711_6_201906141219310

    main 函数的变量 p1 和 add 函数的参数 a 是两个不同的变量,只不过它们各自的存储空间中存了相同的值 4,因为变量 p1 的值赋给了参数 a。同理,变量 p2 的值赋给了参数 b。

    C语言中在调用函数时,每个参数都需要得到一个值,函数定义中有几个参数,在调用中就需要传几个参数,不能多也不能少,每个参数的类型也必须对应上。

    163593711_7_2019061412193116

    事实上,C 语言中也定义了一些参数不定的函数,比如 printf,它可以接收 1 个或多个参数。感兴趣的朋友可以关注我,查看我最新更新的文章和之前的文章。

    易错点

    现在再来说说C语言初学者使用函数时,经常容易犯的错误,请看下面的C语言代码:

    163593711_8_20190614121931125

    该程序员原计划让 add 函数实现参数 p 加一,但是却失败了,以上代码输出的是 p=2。这是因为 add 函数中的参数 a 和 main 函数中的 p 根本就是两个变量。add 函数在执行完毕后,它所在的内存就被收回了。

    关于这一点,我之前的问答已经解释的比较清楚,感到陌生的朋友,可以再回顾一下。

    上一节,我们把自定义函数比作自己做积木,那自定义带参数的函数,就相当于制作可以变形的积木,更加灵活,所以能够完成更多工作。

    欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。

    函数定义时候的参数列表里头的参数叫做形式参数,函数调用时候传入的参数叫做实际参数。如下代码:

    int Add(int x, int y) { return x + y; }

    Add(1, 2);

    定义Add函数时候的x和y就是形参,调用Add函数时候的1和2就是实参。

    形参相当于占位符,定义时因为不知道需要使用什么样的数据来进行操作,有可能是1和2,也有可能是2和3,所以需要使用形参代替实际的数据进行运算。

    实参就是使用函数时候,告诉函数要用什么数据来代替形参进行运算,示例中形参a和b相加应该等于多少,显然是不可知的,但是在调用时候用实参依次替换形参,就可以知道a+b=1+2=3了。

    使用时需要注意,形参是有数据类型的,函数内部可以对形参进行其数据类型允许的操作。而在调用函数的时候,也需要使用相同数据类型的实参进行替换,如果使用了不一样的类型,运行时会尝试对数据进行类型转换。

    展开全文
  • 像我们常用的printf,getchar和putchar函数等等都是从C语言的函数库来的,这三个函数都定义都在stdio.h这个头文件中下边我们先说一下自定义函数格式和方式1.声明函数: 声明一个返回整形值的函数ccc,格...

    C语言是一个面向过程的语言,它函数库里的函数是有限的也是比较底层的函数往往不够我的需求,所以C语言可以自定义函数,让编程人员按自己的需求去定义自己想要的函数来更方便的处理数据。

    像我们常用的printf,getchar和putchar函数等等都是从C语言的函数库来的,这三个函数都定义都在stdio.h这个头文件中

    下边我们先说一下自定义函数的格式和方式

    1.声明函数: 声明一个返回整形值的函数ccc,格式如下(函数返回值的类型  函数名())

    int ccc( )

    2.拟定函数的接受值:让ccc函数接受两个整形数值b和c

    int ccc(int b, int c)

    3.函数体:函数体是将这个函数所接受的数值该如何处理,怎么处理的一个过程,这儿我们就将函数ccc说接受的两个值b和c相加

    int ccc(int b, int c)

    {

    int d;

    d = b + c;                  //将b和c的值相加然后赋值给d

    }

    4.函数的返回结果:函数的返回结果是返回给所调用它的函数,函数的返回值有return 来返回具体如下

    int ccc(int b, int c)

    {

    int d;

    d = b + c;                  //将b和c的值相加然后赋值给d

    return d;

    }

    5.函数的调用:用一下方式将调用这个ccc函数    函数名(函数接受的值1,函数接受的值2)

    main()

    {

    int x = 4, y = 5;

    int SUMY;

    SUMY = ccc(x, y);                                //函数ccc的调用,让x的值赋值给以上ccc函数的接受值b,y赋值给c。然后将b+c后返回给main函数,然后再将相加的值赋值给SUMY

    printf("X + Y = %d\n", SUMY);

    }

    上边就是一个函数声明的基本过程,下边将演示这个函数的调用和执行结果:

    [root@CWG hc]# cat hs.c

    #include

    int ccc(int b, int c)                                //声明一个函数ccc接受两个int类型的数值分别是b和c

    {

    int d;

    d = b + c;

    return d;                                            //经过函数体的运算,将返回d的值给调用者

    }

    main()

    {

    int x = 4, y = 5;

    int SUMY;

    SUMY = ccc(x, y);                              //用ccc的函数体运算x和y两个int类型数值的和

    printf("X + Y = %d\n", SUMY);          //打印出SUMY的值

    }

    [root@CWG hc]# ./hs

    X + Y = 9

    整体是一个自定义函数的声明定义和调用过程。

    相关阅读:

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • C语言自定义格式时间函数 /*开发工具为Visual C++6.0 */ #include #include int main(void){struct tm *ptr;time_t lt;char str[80];lt=time(NULL);ptr=localtime(strfti

    C语言:自定义格式时间函数

     

     

    /*开发工具为Visual C++6.0 */ 

     
    1. #include <time.h>
    2. #include <stdio.h>
    3. int main(void)
    4. {
    5. struct tm *ptr;
    6. time_t lt;
    7. char str[80];
    8. lt=time(NULL);
    9. ptr=localtime(<);
    10. strftime(str,100,"%Y年%m月%d日/n",ptr);
    11. printf(str);
    12. return 0;
    13. }

    运行结果:2008年8月31日

     

     

     

     

     

    展开全文
  • C语言当中函数的分类一般为库函数和自定义函数两种. 首先来看库函数一些例子: 1.在我们C语言的学习过程中,把程序想要得到的结果打印到屏幕上是必不可少的,这个时候我们就会频繁的使用一个功能,即printf(将信息按照...
  • 1.0 嵌入式C语言自我修养 08:变参函数格式检查 1.1 C语言中文参考手册(vprintf_s) 1.简单应用 /* * Ausart.c * * Created on: 2020年1月13日 * Email: linxch2018@163.com * Author: xclin */ #include <...
  • C语言函数

    2021-01-10 17:09:52
    自定义函数格式 类型 名称(参数声明) { 语句;//可以是多条语句 } 函数的参数 实际参数(实参): 真是传给函数的参数,会被函数内部的代码使用,所以称为实际参数,简称实参。 形式参数(形参): 就是个形式上
  • ; margin-right:0">利用下面的结构体求"平面上两点间的距离"。 struct point {<!-- -->  float x;  float y;... margin-right:0">请问这个题怎么设计distance函数</p>
  • 当我在使用自定义函数的时候 函数所要调用的实参为一个数组arr的时候发现 用于计算数组长度的一个公式(初学者只知道这一个) len=seizeof(arr)/seizeof(arr[0])的值始终为1 在询问下发现 这里实参为数组的时候 ...
  • C语言格式化读取函数

    2013-04-16 22:50:12
    格式化读取函数C语言自定义格式
  • 输出的格式,多少位后小数。 scanf后要记得加& <0的情况要记得分类 题目描述 求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 输入 a b c 输出...
  • C语言基础 函数

    2016-03-31 17:51:49
    一、函数(掌握) 1、定义 是一个实现某种功能的代码块。 【作用】1、实现代码复用,减少冗余代码。...(3)自定义函数   3、函数的声明、定义和使用(掌握) (1)声明 格式:返回值类型 函数
  • c语言函数

    2021-04-11 16:00:57
    自定义函数格式 函数返回类型 函数名 (传递的值) 示例求函数面积 #include<stdio.h> #include<math.h> double triangleArea(double a, double b, double c) { double p = (a + b + c) / 2; return ...
  • c语言函数的概念

    2015-09-09 17:00:18
    ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.函数的基本格式 ...2.函数分为库函数和用户自定义函数两种。 1)无参无返回值函数 void 函数名(){ }
  • 明解C语言U6函数学习

    2019-06-26 14:30:45
    基本格式 #include <stdio.h> int main(void) ...自定义函数: 函数头:返回值类型,函数名,形参声明 函数体:复合语句 int max2 (int a, int b) { if (a > b) return a; else retur...
  • C语言输出函数printf

    2019-12-22 21:27:46
    printf详解及进阶用法printf输入函数详细用法基础用法,格式控制进阶用法合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中...
  • 自定义函数格式:函数类型 函数名(形式参数类型说明表)  { 声明部分  执行部分  }   函数调用的形式: (1)作为函数语句调用。函数一般无返回值。例: printf(“Hello,World!\n”); (2)作为...
  • C语言函数(作业:杨辉三角形)

    千次阅读 2018-05-30 21:38:23
    函数在我看来就是代码的最小单位,每调用一个函数就相当于实现一个功能。 函数的分类主要有:1)...4)自定义函数:程序员自己根据需求编写的函数   定义函数的格式: 返回值类型 函数名(参数类型 参数列表);...
  • 一、C语言可以很容易将一个数组传递给一个自定义函数格式如下: main() {  adb(float a[],int n); } float adb(float a[],int n) {  ……  return ^ ; } 二、下面是C语言如何将一个数组从...
  • C语言函数

    2020-10-15 18:50:13
    自定义函数:由程序员根据需求自己写的函数 库函数:官方提供的常用函数,可以直接调用,但需要包含该函数所在头文件 2. 格式 书写格式 返回值类型 函数名(形参列表) { // 函数体 } 调用格式 函数名(实参...
  • C语言自定义的标识符

    千次阅读 2019-06-22 22:19:03
    C语言中的标识符有:关键字、预定义标识符、用户标识符 1.关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。...预定义标识符具有见字明义的特点,如函数格式输出”(英语全称加缩写:pri...
  • C语言函数调用

    2016-08-25 15:41:33
    C语言调用函数就是先定义并声明函数,之后再根据定义函数的格式调用。 举例; #include int fun(int x, int y);... // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值 }
  • 前言:看到sprintf,swprintf之类的可变参数格式函数,是否想过我们能写一个自定义的类似的函数吗?答案是很定的,下面来介绍一种方法,用va_list,va_start, va_end来实现。 va_list是一个宏,使用的时候先...
  • 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在...用户自定义的文本排序方法.可以对BLOBs字段建立索引. 因此为了支持这些特性我改变了数据库的格式,建立了一个与之前版本不兼容的3.0版.至于其他的兼容性的改
  • 单片机C语言C51的函数

    2020-04-07 11:29:10
    函 数 1. 函数的定义 函数定义的一般格式如下: 函数类型 函数名(形式参数表) [reentrant][interrupt m][using n] 形式参数说明 ...前面部件称为函数的首部,后面...函数名是用户为自定义函数取的名字以便调...
  • C语言时间控制格式

    千次阅读 2015-01-14 21:00:55
    4.4 自定义时间格式 我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下: size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr ); 我们可以...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 310
精华内容 124
关键字:

c语言自定义函数格式

c语言 订阅