三九宝宝网宝宝教育教学论文

c语言中声明和定义有什么区别

02月23日 编辑 39baobao.com

[C语言变量定义char int long有什么区别]1、char 在所有机器上都是占一个字节,有符号数范围是-128到127,一般用来表示字符。字符在存储中就是存储的ascii值。 2、int 在16位机上占2字节,现在基本没有了。 在32|64位机...+阅读

如果是指变量的声明和定义:

从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。

对于下面的两句代码:

void Func()

{

int a;

int b=1;

a=0;

}

对于第一行代码,编译器不会做任何事,它不会为它在栈中分配一点东西,直到第三句,a=0;时,编译器才会将其压入栈中。而对于int b=0;这一句,编译器就会生成一条指令,为它赋值。如果反汇编,看到的代码可能是这样的:

push 1;

push 0;

当然,并不一定编译器就会样做,也有可能在声明int a时,编译器就会把一个废值入栈,到第三条再为其赋值,这要看编译器的具体取舍,所以,声明不一定不是定义,而定义一定是定义。

但是,下面的声明,一定仅仅是声明:

extern int a;

这表时,有一个int变量a,它一定是在另外其他地方定义的,所以编译器此时一定不会做什么分配内存的事,因为它就是声明,仅仅表明下面的代码引用了一个符号,而这个符号是int类型的a而已。

如果是指函数的声明和定义:

声明:一般在头文件里,对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。

定义:一般在源文件里,具体就是函数的实现过程 写明函数体。

以下为关联文档:

在c语言中语句和函数有什么区别函数由函数头和函数体组成,通俗地讲函数头的格式为type 函数名(参数1,……) 注意括号中可以无参数,也可以有参数,函数名前的type为函数的返回类型,“)”后千万不能加“;”,因为它不是...

C语言中把变量定义在主函数之外和定义在主函数之内有什么区别在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下: 变量的声...

C语言中如何定义有符号整数C语言中定义有符号整型:signed int x; 由于signed 可以省略,所以 int x; 也是可以定义有符号整型变量x C语言中,有符号数与无符号数主要是由于是高位是否代表符号(正、负数)来决定...

C语言中函数的定义格式是什么函数原型声明的语法格式函数定义就是规定函数的格式与功能。 函数声明就是在函数调用之前进行的一种说明。 下面举例说明两者的语法格式: 1 2 3 4 5 6 7 8 9 10 11 12 13 #include<stdio.h> intfun(...

c语言中选择和投影的区别?1、关系的投影运算是数据库理论中的内容。c语言中没有相关的内容。 2、关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接、除...

C语言中算法的定义是什么算法 Algorithm 算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种...

VB和C语言有什么区别?C语言与VB语言同样可以作为众多语言的基本语言 但C语言面向过程的语言,相信大家也清楚。在编译的时候。不是那么的方便,不过C语言也很强大,如果初学者的话,我也是先建议学C语言...

c语言中声明一个变量属于什么语句c语言中声明一个变量,不叫语句,所以不属于语句。 c语言中,为了叙述方便,把需要建立存储空间的声明称为定义,把不需要建立存储空间的声明称为声明。 以下详述: 在声明部分出现的变...

在c语言里变量的定义声明int a;和int a=1; 这两个既可以叫声明,也可以叫定义, “int a=1;”相当于“ int a;a=1;”两条语句, “int a;”是简单地定义一个变量,编译器会为其在内存中分配一个内存单元,该内存单...

推荐阅读
图文推荐