精华内容
下载资源
问答
  • C语言函数原型

    2013-09-11 17:18:00
    在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的类型,以便在主调函数中按此种类型对...

    在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。

    其一般形式为:

            类型说明符 被调函数名(类型 形参,类型 形参…);  

    或为:

            类型说明符 被调函数名(类型,类型…);  

    括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以防止可能出现的错误。

    例8.1 main函数中对max函数的说明为:

    int max(int a,int b);

    或写为:

            int max(int,int);

    C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。

    1) 如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。例8.2的主函数中未对函数s作说明而直接调用即属此种情形。

    2) 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。例如例8.1中,函数max的定义放在main 函数之前,因此可在main函数中省去对max函数的函数说明int max(int a,int b)。

    3) 如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作说明。例如:

        char str(int a);

        float f(float b);

        main()

        {

         ……

        }

        char str(int a)

        {

         ……

        }

        float f(float b)

        {

         ……

        }

    其中第一,二行对str函数和f函数预先作了说明。因此在以后各函数中无须对str和f函数再作说明就可直接调用。

    4) 对库函数的调用不需要再作说明,但必须把该函数的头文件用include命令包含在源文件前部。

    参考:http://www.winyes.com/Develop/Program/CYY/CyyCourse/8_6.html

    对函数的“定义”和“声明”不是一回事。“定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单 位。而“声明” 的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类 型和个数是否一致)。从程序中可以看到对函数的声明与函数定义中的函数首部基本上是相同的。因此可以简单地照写已定义的函数的首部,再加一个分号,就成为 了对函数的“声明”。在函数声明中也可以不写形参名,而只写形参的类型。 在C语言中,函数声明称为函数原型(function prototype)。使用函数原型是ANSI C的一个重要特点。它的作用主要是利用它在程序的编译阶段对调用函数的合法性进行全面检查。

    说明:

    <1> 以前的C版本的函数声明方式不是采用函数原型,而只是声明函数名和函数类型。
    如:float add(); 不包括参数类型和参数个数。系统不检查参数类型和参数个数。新版本也兼容这种用法,但不提倡这种用法,因为它未进行全面的检查。

    <2> 实际上,如果在函数调用前,没有对函数作声明,则编译系统会把第一次遇到的该函数形式(函数定义或函数调用)作为函数的声明,并将函数类型默认为int 型。如一个max函数,调用之前没有进行函数声明,编译时首先遇到的函数形式是函数调用"max(a, b)",由于对原型的处理是不考虑参数名的,因此系统将max()加上int作为函数声明,即int max(); 因此不少教材说,如果函数类型为整型,可以在函数调用前不必作函数声明。但是使用这种方法时,系统无法对参数的类型做检查。或调用函数时参数使用不当,在 编译时也不会报错。因此,为了程序清晰和安全,建议都加以声明为好。

    <3> 如果被调用函数的定义出现在主调函数之前,可以不必加以声明。因为编译系统已经先知道了已定义的函数类型,会根据函数首部提供的信息对函数的调用作正确性检查。

    <4> 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调用函数中不必对所调用的函数再作声明。

    参考:http://sdzhguoliang.blog.163.com/blog/static/9982057201062652022596/

    http://www.cnblogs.com/pmer/archive/2011/09/04/2166579.html

    转载于:https://www.cnblogs.com/cc-Cheng/p/3314992.html

    展开全文
  • sqrt的函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double);说明:sqrt即Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。头文件:math.h程序示例:#include #include int...

    C语言sqrt函数的实例用法讲解

    c语言sqrt函数的用法

    sqrt函数用于计算一个非负实数的平方根。

    sqrt的函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double);

    说明:sqrt即Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。

    头文件:math.h

    程序示例:

    #include

    #include

    int main(void)

    {

    double x = 4.0, result;

    result = sqrt(x); //result*result = x

    printf("The square root of % is %\n", x, result);

    return 0;

    }

    以上就是本次介绍的全部相关内容,大家如果有需要补充的可以联系我们小编。

    时间: 2020-02-04

    ASP中Split函数的用法 分割截取字符串看几个例子就能理解了 复制代码 代码如下: mystr="1,2,3,4,5" mystr=split(mystr,",") for i=0 to ubound(mystr) response.write mystr(i) next  '返回值为123456 mystr="xlei.net/http/student/x/index.asp" mystr=split(mystr,"/http/s

    由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在python环境下进行了测试,大概了解了其相关的用处,为了怕自己后面又忘了,就写下来权当加深理解了.(ps:我也是python小白,理解可能比较浅显) 1.先定义一个array数据 import numpy as np x=np.array([1,4,3,-1,6,9]) 2.现在我们可以看看argsort()函数的具体功能是什么: x.argsort

    MySQL的SQRT函数是用来计算出任何数量的平方根.可以使用SELECT语句找出方检定根的任意数如下: mysql> select SQRT(16); +----------+ | SQRT(16) | +----------+ | 4.000000 | +----------+ 1 row in set (0.00 sec) 所看到的浮点值,因为内部MySQL将处理浮点数据类型的平方根. 可以使用SQRT函数,计算出记录的平方根.了解SQRT函数更详细用法,考虑EMPLOYEE_TBL的表具

    虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成.这样,就需要用python来调用c的代码了 具体流程: c编写相关函数 ,编译成库 然后在python中加载这些库,指定调用函数. 这些函数可以char ,int, float, 还能返回指针. 以下示例: 通过python调用c函数,返回"hello,world 字符串" 新建c语言文件 hello.c touch hello.c #include char *get_str() {

    返回()是易语言的重要函数,很多函数都有返回值,就是用这个函数返回. 非无私奉献,拒绝看经验不回复,学懂了记得按照下面做: 具体操作请看图. 1.易语言新建一个windows窗口 点击进入代码编辑区 2.我们首先定义一个变量a 整数型 3.然后我们输入计次循环首 这个具体用法请看 易语言计次循环首函数实例讲解 4.我们在循环里输入函数 如果真(a>5) 这个具体用法请看 易语言如果真函数用法 5.然后我们在最后位置输入 调试输出(1) 运行结果为1 6.我们在如果真下面输入 返回() 发现没有结

    本文实例讲述了PHP回调函数概念与用法.分享给大家供大家参考,具体如下: 一.回调函数的概念 先看一下C语言里的回调函数:回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 其他语言里的回调函数的概念与之相似,只不过各种语言里回调函数的实现机制不一样,通俗的来说,回调函数是一个我们定

    本文实例讲述了GO语言延迟函数defer用法.分享给大家供大家参考.具体分析如下: defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理.释放资源.清理数据.记录日志等.这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一. 代码1:了解 defer 的执行顺序 复制代码 代码如下: package main import "fmt" func fn(n int) int {

    本文实例讲述了JS函数this的用法.分享给大家供大家参考.具体如下: 在js中写函数时,很多用到this. this究竟是什么,this是个关键字,是个指针,指向执行环境作用域,也称之为上下文. 先说下函数吧,个人理解是函数是在语言中重复调用的代码块. 在JS里,把函数赋值给对象的属性时,称之为方法 如: var m={}; m.title='title'; m.show=function(){ alert(this.title) } m.show() 就是把函数作为对象m的方法来调用 这样的

    本文实例讲述了JS高阶函数原理与用法.分享给大家供大家参考,具体如下: 如果您正在学习JavaScript,那么您必须遇到高阶函数这个术语.这听起来复杂,其实不然. 使JavaScript适合函数式编程的原因是它接受高阶函数. 高阶函数在JavaScript中广泛使用.如果你已经用JavaScript编程了一段时间,你可能已经使用它们甚至不知道. 要完全理解这个概念,首先必须了解函数式编程是什么一等函数(first-Class Function)以及的概念. 函数式编程 在大多数简单的术语中,函

    展开全文
  • 虽然过去了好多年,但我仍然清楚地记得自己第一次看到signal函数原型时的惊讶。学习UNIX环境C编程的朋友都知道,信号是绕不过去的一道坎,而信号处理的第一重要函数就是signal()。什么都不说了,直接上菜:#include ...
    2303fb6c9be31606ae534dbda22dc84b.png

    虽然过去了好多年,但我仍然清楚地记得自己第一次看到signal函数原型时的惊讶。

    学习UNIX环境C编程的朋友都知道,信号是绕不过去的一道坎,而信号处理的第一重要函数就是signal()。

    什么都不说了,直接上菜:

    #include void (*signal(int signo, void (*func)(int)))(int);

    看到这个函数原型,您知道signal()函数怎么用吗?

    b22c35535e51fde924eeffad99748534.png

    说明一下,这个函数声明没有写错,而且符合ANSI C语法。

    当然,经过长达10分钟的仔细分析后,对大部分C语言程序员来说,signal的函数声明还是可以看懂:

    (1)signal是一个函数;

    (2)函数有两个参数,函数有返回值;

    (3)第一个参数为int类型;

    (4)第二个参数为函数指针,并且函数指针对应的函数有一个参数,为int类型;

    (5)signal的返回类型为函数指针,并且函数指针对应的函数有一个参数,为int类型。

    可能是这个声明太烧脑了,现在Linux中对signal函数这样解释:

    在Linux命令行中,输入man signal命令,得到下面的信息:

    NAME       signal - ANSI C signal handlingSYNOPSIS       #include        typedef void (*sighandler_t)(int);       sighandler_t signal(int signum, sighandler_t handler);
    af500c1abd725f7c9fd1b1bc9fa1d7e3.png

    这样的声明,基本上C语言程序员都能看懂了。

    如果您看到最上面的signal函数声明,有点头晕,非常抱歉,就当刚刚喝了一杯茅台酒吧

    d1ff282292358410937895aa93ee0047.png

    谢谢您的阅读!

    展开全文
  • //变量m具有函数原型作用域,从变量定义处一直到变量声明的末尾,也就是局限在小括号()内,也可以不用变量名q,只用int*告诉编译器参数类型, //如果加名字的话,也可以用int*m等别的名字,可以不与函数定义中的名字...

    直接上代码,编译环境VIsual C++

    /****************************************************
            头文件声明
    ----------------------------------------------------*/
    #include<stdio.h>

    /****************************************************
            全局变量声明
    ----------------------------------------------------*/
             int q;//q具有文件作用域,此处为文件作用域开始
    /****************************************************
            函数声明
    ----------------------------------------------------*/
    //变量m具有函数原型作用域,从变量定义处一直到变量声明的末尾,也就是局限在小括号()内,也可以不用变量名q,只用int*告诉编译器参数类型,
    //如果加名字的话,也可以用int*m等别的名字,可以不与函数定义中的名字p相同
    void fun(int*m);

    /****************************************************
            主函数
    ----------------------------------------------------*/


    int main(void)
    {
        //函数作用域开始,本质属于代码块作用域
        int i=10;
     q=20;
     printf("Before change ,i=%d\n",i);
     fun(&i);
        printf("After change ,i=%d\n",i);
     printf("Global Variable q=%d\n",q);
        for(int j=0;j<5;j++)//复合语句作用域开始,本质属于代码块作用域
     {
      int m=0;
      printf("j=%d\n",j);
     }//复合语句作用域结束
     return 0;
        //函数作用域结束
    }
    void fun(int*p)
    {//形参变量p函数作用域开始,本质属于代码块作用域
     *p=30;
     //形参变量p函数作用域结束
    }
    //全局变量q的文件作用域结束

     

    编译后结果如下

     

     

    展开全文
  • 虽然过去了好多年,但我仍然清楚地记得自己第一次看到signal函数原型时的惊讶。学习UNIX环境C编程的朋友都知道,信号是绕不过去的一道坎,而信号处理的第一重要函数就是signal()。什么都不说了,直接上菜:#include ...
  • C语言函数

    2020-01-30 22:00:56
    函数原型是一种声明形式,告知编译器正在使用某函数,因此函数原型也被称为函数声明(function declaration)。 同时函数原型还指明了函数的属性。例如:第一个void表明——butler()函数没有返回值。 函数...
  • 一、strstr函数使用[1]函数原型char *strstr(const char *haystack, const char *needle);[2]头文件#include [3]函数功能搜索"子串"在"指定字符串"中第一次出现的位置[4]参数说明haystack -->被查找的目标字符串...
  • sscanf()函数详解(c语言)

    千次阅读 2013-02-05 17:48:36
    前言 今天在家里做acm的时候,用到了...函数原型 int sscanf(const char *str, const char *format, mixed var1, mixed var2); 说明:sscanf()会将参数str的字符串根据参数format来转换并格式化数据。 format格式
  • 一、malloc()和free()的基本概念以及基本用法:1、函数原型说明:void*mallocC/C++一、malloc()和free()的基本概念以及基本用法:1、函数原型说明:void *malloc(long NumBytes):该函数分配了NumBytes个字节,...
  • c语言输出函数说明 printf 函数 头文件:stdio.h 原型: int printf (const char *format,…); format :格式控制字符串 … :可变参数列表; 返回值:输出字符的数量 C语言输入函数说明 scanf函数 头文件:stdio.h ...
  • C语言strings函数说明

    2015-06-24 10:49:25
    PS:本文包含了大部分strings函数的说明,并附带举例说明。本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。...@函数原型: char *strdup(const char *s)  函数功能: 字符串拷贝,目的
  • C语言system函数使用

    万次阅读 多人点赞 2019-11-08 19:09:18
    函数原型 包含在头文件 “stdlib.h” 中 int system(const char * command) 函数功能 执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分...
  • strstr()函数的使用说明C语言

    千次阅读 2019-04-09 19:49:39
    头文件 <string.h> 函数作用: 1、strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。...函数原型: char *strstr(char *str1, const char *str2); //返回值为字符型指针 str1: 被查找目标...
  • C语言常用函数说明

    2016-05-09 17:46:39
    1、原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #include <stdio.h> 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src...
  • 函数原型 // 删除注释 void Pack(FILE *src, FILE *dst); 说明:参数 src 和 dst 均为文件指针,其中:src 指示原始程序文件,dst 指示整理后得到的文件。 C语言规定:注释以 /* 开始,以 */ 结束。注释可以跨...
  • C语言函数常用函数

    2021-01-31 11:02:13
    函数原型说明 功能 返回值 说明 int abs( int x) 求整数x的绝对值 计算结果 double fabs(double x) 求双精度实数x的绝对值 计算结果 double acos(double x) 计算cos-1(x)的值 计算结果 x在-1~1范围内 double asin...
  • 函数原型:#include <stdlib.h>double strtod(const char *nptr, char **endptr);C语言及C++中的重要函数。名称含义strtod(将字符串转换成浮点数)相关函数 atoi,atol,strtod,strtol,strtoul 函数说明 ...
  • 浅析C语言中strtol()函数与strtoul()函数的用法C语言strtol()函数:将字符串转换成long(长整型数)头文件:#include strtol() 函数用来将字符串转换为长整型数(long),其原型为:long int strtol (const char* str, ...
  • c语言函数知识

    2017-11-07 20:29:00
    函数原型的语法:函数原型作为一条语句,必须以分号结束 int volume(int );函数原型中可以不提供变量名,只写出类型列表即可 首先来说说定义函数:这里可以将函数分为两类,没有返回值的函数(void函数)和有...
  • C语言函数声明

    2015-06-05 11:22:42
    C语言中,函数声明称为函数原型(function prototype)。使用函数原型是ANSI C的一个重要特点。它的作用主要是利用它在程序的编译阶段对调用函数的合法性进行全面检查。 说明: 以前的C版本的函数声明方式不是...
  • C语言 fread函数

    2019-10-07 17:46:35
    C语言 fread函数fread ...函数原型: size_t fread(void * ptr, size_t size, size_t nmenb, FILE* stream); 函数说明:从文件流中读取数据,stream为已打开的文件指针,ptr指向欲保存读取文件数据...
  • C语言 stat 函数

    2019-10-07 17:46:36
    C语言 stat 函数stat头文件: #...函数原型: int stat(const char * file_name, struct stat * buf) **函数说明:**stat函数获取file_name指向文件的文件状态,并将文件信息保存到结构体buf中,执行成功返回0,失...
  • C语言常用函数

    2020-02-13 12:12:00
    一、数学函数 ...函数原型说明 功能 返回值 说明 int abs( int x) 求整数x的绝对值 计算结果 double fabs(double x) 求双精度实数x的绝对值 计算结果 double acos(double...
  • C语言 perror函数

    2019-10-07 17:46:34
    函数原型: void perror(char * string) 函数说明: 输出将最近一次发生错误的原因输出到标准错误(stderr),其中string会先输出到标准错误中,后面再加上错误原因字符串,其错误原因会依照全局变量errno的值 **errno...
  • c语言函数

    2017-07-11 17:21:00
    原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。) 功能:分配长度为num_bytes字节的内存...
  • 函数pthread_create用来创建一个线程,它的原型为: extern int pthread_create __P ((pthread_t *__thread, __const pthread_attr_t *__attr, void *(*__start_routine) (void *), void *__arg
  • 头文件time.h @函数名称: localtime 函数原型: struct tm *localtime(const time_t *timer) 函数功能: 返回一个以tm结构表达的机器时间信息 函数返回: 以tm结构表达的时间,结构tm定义如下:参数说明: timer-使用time...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,175
精华内容 470
关键字:

函数原型说明c语言

c语言 订阅