类型安全链接强制在链接时传递正确数量和类型的参数。
\n\n例如,在 C 中,您可以将库函数定义为采用 int,但通过一系列的意外,您可以向它传递一个字符串。
\n\nC++ 通过强制使用函数原型并使用名称修饰来强制类型安全链接来避免这种错误。来源
\n\n让我们看一个例子
\n\n//:Def.cpp\nvoid f(int) {}\n\n//Use.cpp\n// Function misdeclaration\nvoid f(char);\n\nint main() {\n f(1); // Causes a linker error\n} \nRun Code Online (Sandbox Code Playgroud)\n\nfunction 实际上是f(int),编译器不知道这一点,因为通过显式声明 \xe2\x80\x93 告诉它该函数是 f(char)。编译将会成功。在 C 中,链接器也会成功,但在 C++ 中则不然。
这里还给出了非常详细的解释http://www.hpc.unimelb.edu.au/nec/g1af05e/chap9.html
\n