C语言和c++中的const、static、extern

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Cell_KEY/article/details/51580930

const 和static 如下图:

extern (外部类型)

        它的作用在于告诉编译器:这个变量或者函数的定义在别的地方,当遇到此变量或函数时应到其他模块中寻找其定义。

在一个文件中定义的全局变量默认是外部的,及其作用域可以延伸到程序的其他文件中。但其他文件要使用这个文件中定义的全局变量,必须在使用前用extern作外部声明,外部声明通常放在文件的开头。变量定义时编译器为其分配存储空间,而变量声明指明该全局变量已在其他地方说明过,编译时系统不再分配存储空间,直接使用变量定义时所分配的空间。

        extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。


猜你喜欢

转载自blog.csdn.net/Cell_KEY/article/details/51580930