我有一个关于C++编译器的问题。
C++编译器到底什么时候会创建一个通用的符号?使用C编译器,我可以为目标文件提供常见的符号,但是如果我使用C++编译器编译相同的代码,我只能得到已定义和未定义的符号。
因此,问题是在什么情况下会导致变量/函数编译为C++中常见的变量/函数?
发布于 2012-05-02 17:44:42
他们中的一些人从来没有这样做过。后来备受诟病的Watcom C++编译器大量使用公共符号来节省内联函数实例。extern的各种情况也可以通过这种方式经济地解决。
发布于 2012-05-02 18:45:01
公共符号存在的主要原因是因为Fortran具有公共块,因此得名为“公共符号”。公共符号的概念与C++是对立的,它是一个严格的定义规则。C语言也有类似的规则,但C标准也认识到,允许同一符号的多个定义是该语言的常见扩展。C++没有“通用扩展”附录。供应商要么符合标准,要么不符合标准。
底线: C++编译器没有理由生成一个通用符号。
https://stackoverflow.com/questions/10411052
复制相似问题