在C中怎样调用头文件中的东西?
还有许许多多的东西你一般看不到定义,只能看到声明,但大家天天会用。比如printf,比如CreateWindowW。这些东西是定义在库中的。没有源码也可以用。
printf位于C的runtime库中,cout则是C 的runtime库,CreateWindowW则是Win32 API库。头文件中是不能定义对象的,如果定义了,会造成包含这个头文件的多个源代码文件产生命名冲突,这你说的对。
头文件中的cout只是声明。定义是在库的二进制文件中。定义在库中的cout只是一个“定义”,要有一个C 程序执行起来,程序中才会有符合这个定义的对象。
讨论对象的各项属性,只有在运行时刻才有意义。
库中定义的对象有多少份,要分静态库与动态库来讨论。如果是变量对象,那么每个程序都会有一份,不分静态与动态库。
如果是函数对象,静态库仍然是每个程序一份,但动态库在整个系统中只会有一份。