2.1声明与定义
必须知道“声明”和“定义”之间的区别,因为这两个术语在全书中会被确切地使用。“声明”向计算机介绍名字,它说,“这个名字是什么意思”。而“定义”为这个名字分配存储空间。无论涉及到变量时还是函数时含义都一样。无论在哪种情况下,编译器都在“定义”处分配存储空间。
对于变量,编译器确定这个变量占多少存储单元,并在内存中产生存放它们的空间。如果你对Java编程感兴趣,可以参考这篇文章Java编程中的变量定义与应用。对于函数,编译器产生代码,并为之分配存储空间。函数的存储空间中有一个由使用不带参数表或带地址操作符的函数名产生的指针。定义也可以是声明。如果该编译器还没有看到过名字A,程序员定义int A,则编译器马上为这个名字分配存储地址。
声明常常使用于extern关键字。如果我们只是声明变量而不是定义它,则要求使用extern。对于函数声明,extern是可选的,不带函数体的函数名连同参数表或返回值,自动地作为一个声明。想了解更多C语言中函数声明与定义的区别,可以阅读这篇关于C中函数声明与定义。
在JavaScript中,函数声明与变量声明的区别也很重要。你可以通过阅读这篇文章区别JavaScript函数声明与变量声明来了解更多。
这样一来,你是不是对声明和定义有了更清晰的理解呢?编译器在“定义”处分配存储空间的过程,如同给你在大脑里预留了一个小房间,而“声明”则是给这房间贴上了名字的门牌。理解了这些,你在编程时就不再迷惑了!
暂无评论