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

    千次阅读 2008-03-30 13:18:00
    标准库函数的函数原型都在头文件中提供,程序可以用#include指令包含这些原型文件。对于用户自定义函数,程序员必须在源代码中说明函数原型。 函数原型是一条程序语句,即它必须以分号结束。它由函数返回类型、函数...

      标准库函数的函数原型都在头文件中提供,程序可以用#include指令包含这些原型文件。对于用户自定义函数,程序员必须在源代码中说明函数原型。
      函数原型是一条程序语句,即它必须以分号结束。它由函数返回类型、函数名和参数表构成,形式为:
       返回类型 function(参数表);
      参数表包含所有参数的数据类型,参数之间用逗号分开。在C++中,函数声明就是函数原型。
      函数原型和函数定义在返回类型、函数名和参数表上必须完全一致。如果它们不一致,就会发生编译错误。
      函数原型不必包含参数的名字,而只要包含参数的类型。下面的函数原型声明是合法的。
       int Area(int,int);
      等价于:
       int Area(int length,int width);
      对于标准库函数(简称库函数)来说,编译器从来不把其实际代码看成是程序的组成部分。编译器能够确认是否正确地调用库函数,这是必要的。在头文件中内含的函数声明都是函数原型。
      如果函数原型不正确,编译器会及时报告错误。
      例如,对于程序chl_3.cpp,主函数中的函数调用写成:
       c=max(a,b,56); //error:extra parameter in function call
      则编译器将会报告一个“函数调用中遇到过多的函数参数”之错误。
      又例如,下面的代码中,函数声明与函数定义的函数原型不一致:
       void funcA(int,float);
       void main()
       {
        int a;
        float b;
        funcA(a,b);
       }
        void funcA(int,int)
       {
        //...
       }

      该代码能够正确通过编译,因为函数声明的原型与函数调用相吻合。但在连接时,发现没有与函数声明相一致的函数定义,结果产生“不能确定的外部函数”的连接错误。
      函数返回在声明时约定数据类型。例如:
       int max(int a,int b)
       {
        if(a>b)
         return a;
        else
         return b;
       }

      例中,函数返回的变量a或b是int型的。
      如果返回的是其他基本数据类型,则在返回时,先作隐含的类型转换,然后再返回。例 如,下面的代码中,主函数中的变量a被初始化为3:
       int f()
       {
        return 3.5;
       }
        void main()
       {
        int a=f();
       }

      因为函数f()定义的返回类型是int,所以return语句的值3.5被转换成int型数3之后,返回给主函数,赋给了变量ao
      如果函数返回的是不相容的数据类型(比如,后面介绍的类对象), 则函数将在编译时给出一个“不能将类转换成int"的错误。
      函数的返回值也称函数值。返回的不是函数本身,而是一个值。
      return语句后面的括号是任选的,例如,“return(3);”等价于“return 3;”。
      return语句可用于改变执行顺序。例如:
       int min(int a,int b)
       {
        if(a<b)
         return a;
        else
         return b;
       }

      在这里,return语句还起到了改变计算顺序的作用。因为return是返回语句,它将退出函数体,所以该语句之后的语句不会被执行了:
      无返回的函数也可以使用return,但不能返回值:例如:
       void message(int a)
       {
        if(a>=0)
         return;
         //...
       }

      在这里,return语句起了一个改变语句顺序的作用。
      在有返回类型的函数中,return后面所跟的表达式并不直接替换调用函数,而是先经过求值计算,必要的时候进行类型转换,然后将其存放到内存的某个区域:该区域视编译器的不同而不同,也视返回类型的不同而不同。例如,BC将一个返回整型的数存放在栈区(见5.4节)的位置。在存放到一个专用的区域后,再将其变量的地址传给调用函数,以使调用函数把它作为函数返回值:
      编译器遇到一个函数调用时,需要判断该函数调用是否正确,该机制即函数原型。

      ->main()的返回值
      main()是特殊的函数,它由操作系统调用,返回到操作系统。 函数头void main()是说,不返回任何值给操作系统,所以,在main()函数体的最后,无须“return 1;”之类的语句。如果函数头为int main()或main(),则函数体的最后必须给出“return 1;”之类的语句。
      对于DOS操作系统来说,return 1和return 0都是无所谓的。
      为了省略“return 1;” 这种无谓的操作,本书一律用void main()定义格式。

    展开全文
  • 函数原型&函数声明

    千次阅读 2019-02-20 09:53:36
    这三个元素被称为函数原型,函数原型描述了函数的接口。 函数原型类似函数定义时的函数头,又称函数声明。为了能使函数在定义之前就能被调用,C++规定可以先说明函数原型,然后就可以调用函数。函数定义可放在程序...
    对func函数的定义: char* func(int x, int y) { ....}
    对func函数的调用:char* s;  s=func(10,50);
    对func函数的原型说明: char* func(int x, int y);    ←后面有分号,并且没有函数体{}
        函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口。
        函数原型类似函数定义时的函数头,又称函数声明。为了能使函数在定义之前就能被调用,C++规定可以先说明函数原型,然后就可以调用函数。函数定义可放在程序后面。 由于函数原型是一条语句,因此函数原型必须以分号结束。函数原型由函数返回类型、函数名和参数表组成,它与函数定义的返回类型、函数名和参数表必须一致。函数原型必须包含参数的标识符(对函数声明而言是可选的);说明:系统标准函数并没有在包含文件中定义,而只是提供了函数原型。在调用函数时,系统会正确地调用库函数。 注意:函数原型与函数定义必须一致,否则会引起连接错误。
        函数先声明才可以被调用,如同变量先声明后使用。函数的声明也可以和函数定义分开。一个函数只可以定义一次,但是可以声明多次。
        也就是说是通过函数原型进行函数声明的!
    
    展开全文
  • C++函数原型

    2019-01-12 21:16:44
    调用函数需要先声明函数原型  若函数定义在调用点之前,可以不另外声明;  若函数定义在调用点之后,必须要在调用函数前声明函数原型:  函数原型:类型标识符 被调用函数名(含类型说明的形参表); 函数...

    调用函数需要先声明函数原型

     若函数定义在调用点之前,可以不另外声明;

     若函数定义在调用点之后,必须要在调用函数前声明函数原型:

     函数原型:类型标识符 被调用函数名(含类型说明的形参表);

    函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口

    展开全文
  • C++ 函数原型

    千次阅读 2017-04-01 09:58:40
    一,函数原型语法 函数原型是一条语句,因此必须使用分号结束。获得原型最简单的方法是复制函数定义中的函数头。函数原型不要求提供变量名,有类型列表就可以了。 二,为什么需要函数原型函数原型描述了函数到...

    一,函数原型

    函数原型(函数声明)就是告诉编译器这个函数是存在的,让编译器知道这个函数的相关信息。函数原型不要求提供形参名,有类型列表就可以了。避免使用函数原型的方法是,在首次使用函数定义之前定义它,但这并不是总可行的。我们一般把函数声明放在主函数的前面,因为min()函数是应用程序的入口。函数声明是告诉编译器这个函数存在,函数定义是表示该函数如何去做。


    二,为什么需要函数原型?

    函数原型描述了函数到编译器的接口,它将函数返回值的类型以及参数的类型和数量告诉编译器。例如:看函数原型如何影响下面的函数调用。

    double cube(double x);
    
    int main()
    {
        double val = cube(5.0);
        return 0;
    }
    
    double cube(double x){
        return x * x;
    }

    首先原型告诉编译器,cube()有一个double参数。如果程序没有提供这样的参数,原型将让编译器捕获这样的错误。其次,函数调用结束后,将把返回值放到指定的位置。然后调用函数将从这个位置获取返回值。由于函数原型指出了函数的返回值是double类型,因此编译器知道应检索多少个字节以及如何解释他们。如果没有这些信息,编译器只能进行猜测,但是编译器并不会这么做。


    三,函数原型的功能

    函数原型可以帮助编译器完成许多的工作,同时,它也可以帮助程序极大的降低程序出错的几率。原型可以确保以下几点:

    1,编译器正确处理函数返回值。

    2,编译器检索使用的参数数目是否正确。

    3,编译器检查使用的参数类型是否正确,如果不正确转换为正确的类型。

    int x = 5;
    double val = cube(x);

    首先看上面的函数调用,程序将一个int型的值5传递给cube()。编译器注意到,cube()原型指定一个double类型的参数,因此会将5转换为5.0。

    展开全文
  • 为什么谭浩强的书上前面说,函数首行称为函数原型,而后面说函数声明是函数原型函数原型到底指的是什么?另外,函数原型中包含函数的存储类别吗?
  • fread函数详解 函数原型

    千次阅读 2019-04-30 14:58:11
    函数原型: size_t   fread(   void   *buffer,   size_t   size,   size_t   count,   FILE   *stream   )    buffer   是读取的数据存放的内存...
  • 函数原型 int power(int m, int n) 依次是 函数返回类型、函数名和形参列表 函数原型不需要函数体,也不需要形式参数的名字,用分号作为原型的结束符。 对于形参列表只需要 说明需要几个参数,分别为什么类型...
  • atoi()函数原型与itoa()函数原型

    千次阅读 2015-01-07 15:39:56
    1、atoi函数原型: #include using namespace std; int atio1(char *s) { int sign=1,num=0; if(*s=='-') sign=-1; s++; while((*s)!='\0') { num=num*10+(*s-'0'); s++; }
  • 函数原型和函数声明的区别

    万次阅读 2018-07-04 19:22:24
    函数原型:指明函数的名字,返回的类型,有几个参数,这几个参数是什么类型,不需要函数体,也不需要形式参数的名字,其中用分号作为原型的结束符。例如:int fun( int );第一个int指明返回的类型,第二个int指明...
  • strcpy函数原型

    千次阅读 2017-08-01 21:16:05
    strcpy函数原型,主要参数断言!char *strcpy(char *strDest,const char *strSrc) { assert((strDest!=NULL)&&(strSrc!=NULL)); char *address=strDest; while((*strDest++ = *strSrc++)!='\0') NULL; return ...
  • C语言函数原型的作用

    2019-10-29 21:27:20
    函数原型(Function Prototype):即函数声明给出了函数名、返回值类型、参数列表(重点是参数类型)等与该函数有关的信息。 函数原型的作用:告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的...
  • 记得我在学习JS继承的时候,对于函数、函数原型和函数实例这几个概念理解的比较模糊,因此在看原型链继承的时候,脑袋犯晕,不知道大家有没有这个感受,我是很苦恼的,为此,我专门花时间去理解他们之间的关系,并画...
  • CreateThread函数原型

    千次阅读 2013-12-26 09:39:41
    函数原型 MSDN中CreateThread原型: ? 1 2 3 4 5 6 7 8 HANDLE CreateThread(  LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD  SIZE_T dwStackSize, // initial stack ...
  • main 函数原型及参数

    千次阅读 2017-03-28 20:56:16
    Main 函数原型 Main 函数参数 Main 函数 返回值 Main 函数不是第一个执行的函数Main 函数原型C/C++ 中的main 函数,经常带有参数 argc,argv,如下:int main(int argc,char** argv)int main(int argc,char* argv[])...
  • 所谓函数原型,又称函数声明,就是在调用这个函数之前要先声明一下这个函数,才能让别的函数能够访问到它(如果这个函数定义在调用它的代码块的前面则不用声明) C语言和C++都保留了函数声明这一需求,在声明时都有...
  • vim 查看函数原型

    千次阅读 2013-04-05 10:16:33
    vim 查看函数原型可以分为系统函数和自定义函数 一、系统函数:  偶用shift+K 二、自定义函数:vim 配合ctags实现函数原型快速定位 ctags可以分析程序生成tag文件为vim所用,从而在编写程序时实现函数原型、...
  • 函数原型、声明、定义?

    千次阅读 2019-01-08 14:50:00
    函数原型、声明、定义? 函数原型相当于函数声明,包括函数类型、函数名、形参列表(其中形参名可以省略),且不需要函数体,例如: int func_a(int a); double func_b(double b); 而函数定义则...
  • vim查看函数原型 定义

    万次阅读 2013-05-23 10:40:34
    vim查看函数原型   vim 查看函数原型可以分为系统函数和自定义函数   一、系统函数:    偶用shift+K   二、自定义函数:vim 配合ctags实现函数原型快速定位   ctags可以分析程序生成tag文件为vim...
  • 理解函数原型的作用

    千次阅读 2017-08-09 14:54:26
    之前对函数原型的理解只是书本上得到的那些知识,对于其更多的含义并没有去深究过,今天正好又遇到原型相关的问题,再次深入挖掘了一下,因此记录一下自己的拙见!!! 我尝试从原型产生的角度来理解原型的作用。...
  • memcpy函数原型

    2012-10-07 23:22:41
    memcpy函数原型: void* memcpy(void* pvTo, const void* pvFrom, size_t size) {  assert((pvTo!= NULL) && (pvFrom!= NULL));  unsigned char* pbTo = (unsigned char*)pvTo;  unsigned char* pbFrom = ...
  • C++函数原型(函数声明)

    千次阅读 2015-10-11 19:20:57
      从Java到c++的学习之路!!    在Java中,只要方法...但是在C++中,如果在定义前就调用了,那么要有一个函数声明,也就是函数原型。   #include &lt;iostream&gt; using namespace std; vo...
  • Linux open() 一个函数,两个函数原型

    千次阅读 2018-01-08 15:57:57
    open在手册中有两个函数原型, 如下所示: int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 这样的函数原型有些违背了我们的直觉。 C语言是不支持函数...
  • 什么是函数原型

    千次阅读 2011-09-28 08:37:05
    学习Delphi后,再学习VC++,才发现居然还有这么多的基础知识...函数原型也叫函数声明,还叫引用说明。其目的是实现先调用函数,后定义函数。 下面举例说明: #include void fun(int n);//这就是函数原型。 int main
  • 函数原型可以对传入函数的参数的类型,数目和顺序等进行限定。函数原型定义的语法如下: NAME(原型定义)BLOCK 但是要让这些限定起作用就必须使用内建函数的调用方式进行调用,即必须采用下面的方式进行调用: NAME[...
  • 这篇片】lseek函数lseek函数详细说明函数原型和头文件lseek函数的详细使用补充命令小结 lseek函数 我们在前面的博客中,简单的用过lseek函数,在这篇博客,我们就来详细的介绍一下,lseek函数的一些具体的情况。 ...
  • C语言函数声明以及函数原型

    千次阅读 2020-02-24 13:47:56
    C语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提前声明。 函数声明(Declaration),就是告诉编译器我要使用这个...
  • signal函数原型解读

    千次阅读 2019-07-23 15:01:38
    今天复习信号,被函数指针和signal函数原型绕住了,看了几篇博客,这里记录一下。 以下内容摘自signal() 函数详解,想要理解signal的原型,要先理解返回值是函数指针的函数指针所指向的函数的形式,说起来有点绕...
  • C++里声明函数原型的作用

    千次阅读 2018-11-08 23:02:14
    #include &lt;...// 这个声明函数原型的代码必须有, 如果没有的话会报use of undeclared identifier 'simon' 这个异常 void simon(double n); int main() { simon(3); cout &lt;&...
  • c++的函数原型

    千次阅读 2018-03-11 14:58:05
    在c++中进行函数调用之前,如果被调用函数的定义在调用函数之后,必须对被调用函数原型进行声明 在main函数中调用get函数,虽然get函数就在下面定义,还是要在main之前对get的原型进行声明 #include "iostream" ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,477
精华内容 29,390
关键字:

函数原型