声明与定义的区别

2017-08-08 14:24:57 jazdbmin1639整理 c语言定义声明 c语言定义声明

c声明和定义的区别

Q1: 函数声明与函数定义的区别

函数声明表示有这么个函数了,函数定义就是具体实现了。举个例子:函数声明:intfun(int a, int b); 函数定义:intfun(int a,int b){intc;c=a+b;return c;} 函数声明就像是函数定义的头部,比较简略,函数是用来调用的,如果函数定义部写到调用的位置后面,执行到调用位置,后面根本没执行就找不到了,当然报错了,就要在前面加声明,表示有这个函数,反之先写函数体,后调用声明就用不了,不在同一源文件,道理也是如此。

Q2: Java中定义和声明的区别

Java中,我们应该知道最基本的就是定义变量和声明变量了,那么定义与声明这两者有没有区别呢?具体的区别又是哪些呢?下面学习啦小编来告诉你定义与声明的区别。定义和声明的定义区别1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。声明是向编译器介绍名字--标识符。它告诉编译器“这个函数或变量在某处可找到,它的模样象什么”。而定义是说:“在这里建立变量”或“在这里建立函数”。它为名字分配存储空间。无论定义的是函数还是变量,编译器都要为它们在定义点分配存储空间。对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存其数据,对于函数,编译器会生成代码,这些代码最终也要占用一定的内存。总之就是:把建立空间的声明成为“定义”,把不需要建立存储空间的成为“声明”。基本类型变量的声明和定义(初始化)是同时产生的;而对于对象来说,声明和定义是分开的。下面小编给大家举个例子说明一下。例如:类A如果A a;就是一个声明,告诉编译器a是A类的一个对象变量,但是不进行初始化;如果以后a=new A();这就是初始化,分配了空间。需要注意的是我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间。用static来声明一个变量的作用有二:(1)对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在。(2)外部变量用static来声明,则该变量的作用只限于本文件模块。定义和声明的具体区别所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。声明有2重含义:(1) 告诉编译器,这个名字已经匹配到一块内存上,下面的代码用到变量或者对象是在别的地方定义的。声明可以出现多次。(2) 告诉编译器,这个名字已经被预定了,别的地方再也不能用它来作为变量名或对象名。定义和声明最重要区别定义创建对象并为这个对象分配了内存,声明没有分配内存。

Q3: C语言中,声明和定义的区别是什么?

声明只是一个空壳,不会有具体的函数实现,
而定义要实现函数的实现,例如:
函数声明
int atoi(char para);
函数实现:
int atoi(char para)
{
int result;
result=para-38;
return result;
}//这里函数实现就要有实际的函数定义了

Q4: 在C语言中声明和定义有什么区别

声明是引入标识符和标识符的类型(类型可以是整形,函数,浮点型等)。声明也可理解为是让编译器知道有这么个标识符,方便以后引用。如下面这些声明语句:

extern int i;
extern double d;
extern int foo(int, int);
double f(int, double); // 函数声明时extern可以省略。

定义实际是实例代(或实现)标识符。可为标识符分配存储空间,还可为标识符指定初始值。如下是定义的语句:

int i;
double d = 3.14;
int foo(int lhs, int rhs) {return lhs*rhs;}
double f(int i, double d) {return i+d;}

定义可以代替声明,因为在定义的时候我们也指定了标识符和类型。但所有标识符只能有一次定义,而声明可以有多次,如下声明在C和C++中都是合法的:
extern int i;
extern int i; //多次声明了变量i
extern double d;
extern double d;//多次声明了变量d
double f(int, double);
double f(int, double);//多次声明了函数f

若同一个标识符多次定义,则编译器不知道哪个定义才是标识符的实现,编译会通不过。而多次声明不会,它只是告诉编译器有这么个标识。区分声明和定义相当重要,一个叫秒秒学的教程网站上的多个课程如《Java基础课程》和《C语言基础》中都有说明这个问题,推荐你去看看,希望对你有帮助。

w※WW.JiZhuba.coM

Q5: 定义类声明类有什么区别

类的声明只是告诉编译器有这么一个类,它的名字是XXX,它具有哪些成员函数,哪些成员变量;而定义类是通过实例化类,对其分配存储空间。声明和定义最大的分别是是否分配存储空间。
例如,这是类的声明:
class Student
{
public:
公用的数据和成员函数
protected:
保护的数据和成员函数
private:
私有的数据和成员函数
};//摘自百度百科
这是定义类:Student A = new Student();//分配了存储空间

小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

c语言定义声明 推荐文章:
推荐不满意?点这里  ››  

c语言定义声明