add(x, y);
调用者知道 add 是一个函数,也知道需要将 x、y 压栈,但应当是先压2个字节、再压4个字节喃,还是先压4个字节,再压2个字节喃;还是连续压2个4字节喃?
这里需要说明一下,在上世纪80年代intel 8084系的处理器普及之前,并无公认的“字节(byte)”概念,以上只是我举例利便。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
紧接着结构体等特性陆续引入,问题变得更繁杂。在这类情况下,函数调用需要提早声明,以便让调用者得知函数的参数与返回值尺寸(结构体使用也需要提早声明,以便让调用者知道其成员、尺寸、内存对其规则等,这里不赘述了)。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
于是,头文件就呈现了。这里有人可能就会问了:为何在编译一个源文件时,不去其它源文件查找声明,就如后世的Java、C文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
又后来呈现了C++,因为函数重载、模板等特性,当编译器辨认到一个函数,不但是参数与返回值尺寸,连调用哪个函数都没法从函数名判别了(即上文的“倘若 alpha ,beta 是 C++ 源文件,编译没法通过,这个后文会做解释”一语)。函数与数据结构需要提早声明才能使用更是不可或缺。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
以上。共勉。文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
学习历来不是一个人的事情,要有个互相监督的火伴,工作需要学习C/C++或者为了入行、转行学习C/C++的火伴可以文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
以上就是微观生活(93wg.com)关于“为何C/C++要分为头文件以及源文件?”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html 文章源自微观生活(93wg.com)微观生活-https://93wg.com/11452.html
评论