C语言中的为声明或定义的变量编译器如何处理?

来源:互联网 发布:卸载root权限软件 编辑:程序博客网 时间:2024/06/11 23:29

查了好多资料,最终都没有一个明确的说法,最后自己想办法,终于找到问题的答案。

我用keil 4编写51单片机应用代码,然后输入要测试的语句,观察HEX文件的大小,发现,若在普通语句中插入变量,即使是定义了这个变量,hex文件的大小不会改变,如果给此变量赋值,则HEX文件会变大。若在for    while  switch 函数语句中定义一个变量,无论此变量是否赋值HEX文件都会变大。如果声明了一个变量,无论在哪里HEX文件的大小不变。

这说明(1)无论c文件里是否有main,编译过程对于他们是一样的。

             (2)定义不使用的变量若为全局变量,则编译器不会给它分配存储空间,若为局部变量,则会分配。

               (3)HEX文件为最终生成的功单片机使用的16进制码,是和BIN文件一样的机器码。