C语言中的函数声明和函数原型有什么区别

发布于 科技 2024-02-10
18个回答
  1. 匿名用户2024-01-25

    函数声明和函数定义之间存在一些差异,当然也存在联系。

    我认为主要区别如下。

    首先,声明一般在主功能之前,定义不一定。

    第二:定义也是一个声明(放在 main 函数的前面),但声明并不代表定义。

    第三:根据C++入门,函数声明只告诉系统有这样的函数,但不给它分配内存空间,只在定义函数时分配内存空间。

    第四:当然,如上所述,有一个函数体是被定义的,即{}。

  2. 匿名用户2024-01-24

    在C++中,它没有区别。

    传统的C函数声明难以保护类型安全,因此后来引入了类型安全“原型”的概念。 是否在 C 语言中使用原型是可选的。 但是在 C++ 中,您只能使用原型声明,并且所有函数声明和定义都是原型,因此不需要强调术语“原型”。

  3. 匿名用户2024-01-23

    函数原型与函数声明没有什么不同。 只是一些书籍函数声明有时也会引用函数定义。

  4. 匿名用户2024-01-22

    声明与定义不同。

    void fun(void);陈述。

    int main(void)

    void fun(void) 定义。

    定义必须包括函数的主体,即它应该伴随着 {}

  5. 匿名用户2024-01-21

    函数原型和函数调用是两个不同的概念。

    函数原型是一种在程序中声明函数的方法,它告诉编译器有关函数名称、返回类型和参数类型的信息。 在函数原型中,不需要提供函数体,只需要提供函数名称和参数列表即可。 函数原型的主要目的是为编译器提供有关函数的信息,以便在程序中调用函数时,编译器可以正确检查参数类型和返回值类型。

    函数调用是指在程序中调用定义的函数并将参数传递给函数。 调用函数时,需要使用函数名称和参数列表来指示正在调用的函数以及传递给函数的参数。 函数调用可以在程序中的任何位置进行,只要使用函数名称和参数列表即可。

    两者之间的主要区别在于,函数原型是一种声明函数并向编译器提供有关函数的信息的方法,而函数调用是在程序中调用定义的函数并执行函数体。

    需要注意的是,函数原型和函数调用在程序中都是必不可少的。 在定义函数之前,可以使用函数跟踪原型,以便编译器在调用函数时可以正确检查参数类型和返回值类型。 函数调用是在程序中调用函数和执行函数体的方式,使程序模块化,易于维护和扩展。

    同时,需要注意的是,函数原型不仅用于为编译器提供有关函数的信息,还用于在程序中重载函数。 函数重载是指可以在同一个作用域内定义多个同名函数,但这些函数必须具有不同的参数列表(不同的数量、类型或顺序),编译器可以根据函数原型的参数类型和数量来确定被调用的函数,从而实现函数重载。

  6. 匿名用户2024-01-20

    函数的原型声明是需要在 main 函数前面声明,否则调用这个函数时就找不到 main 函数了,原型声明不能定义具体的函数体,然后可以把函数体的特定部分放在 main 函数后面再单独定义, 这样程序整体上就比较整洁了,否则自定义函数就定义在main函数的前面,然后就得找到main函数了。

  7. 匿名用户2024-01-19

    函数的声明与函数的定义非常相似,但本质上是不同的。 声明不会打开内存,它只是告诉编译器要声明的部分存在,需要预留一点空间。 定义需要由内存组成。

    函数的定义。

    函数的定义是一个完整的函数单元,包括函数类型、函数名称、表单参数和参数类型、函数体等。 在程序中,一个函数只能定义一次。 函数标头和大括号之间没有分号。

    函数声明。

    函数声明只是对编译系统的描述:函数声明是对已定义函数的返回值的类型描述,用于通知系统在此函数中调用的函数类型。 它不包含函数体(或参数),函数应在调用几次后在每个键函数中声明。

    函数声明是必须以分号结尾的解释性语句。

    C 编译系统是从上到下编译的。 通常,如果调制功能放在主要调制函数之后,则应在它前面有一个声明。 否则,自上而下的编译系统将无法识别它。

    正如变量在使用之前必须声明一样,函数在调用之前也必须声明,否则就无法调用! 函数的声明可以与定义分开,需要注意的是,一个函数只能定义一次,但可以多次声明。

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

    定义函数的程序员提供函数原型,使用函数的程序员只需要对函数进行原型设计即可。

  8. 匿名用户2024-01-18

    在函数的情况下,函数的声明是函数的原型,函数的定义是函数函数的定义。 调制函数的声明在音调函数的声明部分,功能的定义显然不在声明部分的范围内,它是一个单独的模块。

    对于变量,声明部分中会出现两种类型的变量:一种是需要建立存储空间的地方(例如"int a;"),另一种是不需要创建存储空间的一种(例如,“extern a; 前者是一个定义性陈述,或者只是一个定义; 后者是参考语句。

    从广义上讲,声明包括定义,但并非所有声明都是定义。 对于“int a; 它既是一个陈述,也是一个定义; 和“extern a; 它是一个宣言,而不是一个定义。

    一般来说,为了叙述方便起见,建立存储空间的声明称为定义,不建立存储空间的声明称为声明,是狭义的陈述,但通俗易懂。

  9. 匿名用户2024-01-17

    好吧,对你来说也是如此。

    void fun();这称为函数声明 main()。

    void fun() 称为函数的定义。

    首先,当执行这个程序时,计算机是从上到下执行的。

    也就是说,如果没有函数的语句,当函数被执行到函数调用时,计算机不知道什么是乐趣,也不知道下面函数有具体的实现。 因此,你需要声明并告诉计算机确实有这个东西,它是一个功能,下面有一个定义。

  10. 匿名用户2024-01-16

    函数声明必须放在 main 函数之前,因为系统必须标识它才能调用,而函数定义是对函数的解释,是函数算法的描述,可以放在 main 函数之后。

  11. 匿名用户2024-01-15

    函数声明表明存在这样的函数,函数定义就是具体的实现。

    例如:函数声明:

    int fun(int a, int b);

    函数定义:int fun(int a,int b) 函数声明就像函数定义的头部,比较简短,函数是用来调用的,如果函数定义部分写到调用位置的后面,执行到调用位置,根本就找不到, 当然报错了,前面要加一个声明,说明有这个函数,否则先写函数体,再调用声明就不能用了,不在同一个源文件中,同样是真的。

  12. 匿名用户2024-01-14

    函数的声明意味着变量被声明,并在声明之后。 程序现在可以使用此变量。 函数的定义是给函数一个特定的初始值。

    例如:int a; 是一个信誉,变量 a 可以在声明后使用。 int a=5;是定义。

  13. 匿名用户2024-01-13

    函数声明:

    返回类型函数名称(参数类型 1 参数名称 1, ··参数类型 n 参数名 n);

    例如 int fun(int a, int b);

    void display();

    float fn1(float x);

    函数定义:返回类型函数名(参数类型 1 参数名称 1, ··参数类型 n 参数名称 n)。

    例如,int fun(int a, int b) 在程序中,如果前面有 main() 函数,则函数声明必须用 mian() 编写; 如果函数在 main() 前面,你可以将函数声明留在 main() 中!

  14. 匿名用户2024-01-12

    函数声明时,只有函数头,例如,main 函数 main 调用 add 函数,但 add 函数的定义放在 main 之后。 它需要首先在 main 函数中声明。

    int add(int a, int b);

    函数定义,具有函数标头和函数体。

    int add(int a, int b)

  15. 匿名用户2024-01-11

    函数的声明等同于定义函数的名称,即名称代表程序中的一个操作,但声明没有解释函数是如何工作的; 函数的定义是指定函数的具体作用,即实现过程。

    例如void output(int x); 是函数的声明,通常前面是 main 函数;

    void main()

    void output(int x) 函数,指定函数的具体操作。

  16. 匿名用户2024-01-10

    答:C语言中声明和定义的区别在于:

    声明:声明的只是某一类型的变量参数的名称,参数没有相应的赋值。

    定义:一个参数,它不仅声明了某种类型的参数的名称,而且还初始化了该参数的赋值。

    至于声明和定义的位置,它们不必在函数的前面。 您需要做的就是在需要使用参数之前声明或定义参数。 可以是前面的函数,声明; 它也可以在函数中声明。

    两者的区别在于动作间隔不同:前者可用于其他功能; 后者只能在此功能中使用。

    例如,有两个区别:

    陈述。 int a;

    定义。 int a = 1;

  17. 匿名用户2024-01-09

    程序是按顺序执行的,你只需要记住,为了使用它们,你必须声明它们。

    声明位置在哪里并不重要,只要声明在使用前面即可。 所以它通常不在函数之外。

    有人认为我只在一个函数中调用声明函数,所以我只在这个函数中声明调用函数,这样在函数中声明,也没问题。

    因此,没有关于功能内和功能外声明的规则,只是声明应该在使用前面。

    一个好习惯是置身事外 ·通常,函数原型声明在头文件的较低位置)。

  18. 匿名用户2024-01-08

    函数原型告诉编译器函数将接受哪些参数以及它将返回的返回值,以便编译器可以检查对函数的调用是否正确,以及是否存在任何错误的类型转换。 例如,存在以下函数原型;

    intsome_func(int,char·,long);

    编译器检查对函数的所有引用(包括函数的定义)是否使用三个参数,并返回 int 类型的值。 如果编译器发现函数的调用或定义与函数原型不匹配,编译器将报告错误或警告消息。 例如,对于上述函数原型,当编译器检查以下语句时,会报告错误或警告消息:

    x=some_func(l);

    notenough

    arguments

    passed*/x

    somc_funcc*hellol",1,"dude:");

    wrongtypeofarguments

    used*/x

    aome_funcd,sir,2879,t");

    toomany

    arguments

    passed

    下面示例中的函数调用也是不正确的,因为函数 some func() 的返回值不是 long* 类型的值。

    lvalue=some_func(1,str,2879);

    some_rune()returns

    anint,not

    along*

    同样,编译器可以检查函数的定义(或主体)是否与函数的原型匹配。 例如,当编译器检查以下函数定义时,它会报告错误或警告消息:

    intsome_func(char

    string,longlvalue,int

    ivalue)

    WrongOrderOf 总之,在源文件中解释函数原型提供了一种机制来检查函数是否被正确引用。 许多常用的编译器会检查引用函数的原型是否已在源文件中,如果没有,则发出警告消息。

相关回答
24个回答2024-02-10

左边的函数不仅可以用于它前面的 main 函数,还可以用于它前面定义的其他函数。 >>>More

13个回答2024-02-10

声明通常告诉编译器它有这个对象。 但是这个'是的'这个词有两个含义,第一个含义是对象已经在别处定义过了,比如,当它用extern声明时,它就有了这个含义,因为对象已经存在了,此时不会给它分配内存。 第二个含义是这个对象以前没有被我定义过(现在我有了它,以前没有了),这个时候声明可以称为它们重叠的定义,此时内存被分配给这个对象。 >>>More

14个回答2024-02-10

你能说清楚吗,我不知道你的意思。 是否要在 main 函数中调用一个函数,然后不知道如何定义被调用的函数? 如果是这样的话,我可以告诉你。 >>>More

12个回答2024-02-10

在计算机科学中,内联函数(有时称为函数或编译时函数)是一种编程语言结构,它建议编译器内联扩展某些特定函数(有时称为扩展)。 >>>More

4个回答2024-02-10

函数是否被外部引用不是一成不变的,两者之间没有必然的相关性。 此外,如果某个函数被指定为静态函数,则应在头文件中将其声明为静态函数,否则其他人在使用库时会误用它。