|
|
1
11
这是语言要求。
这些就是规则。规则
允许
(但不需要)编译器扩展
这和非-
|
|
|
2
1
请记住,编译器以文件为基础进行操作,即它将每个.cpp文件视为自己的离散单元。它们之间没有任何联系(当然除了对链接器粘合在一起的其他函数和变量的引用)。 如果您内联了某个东西,并且编译器决定使用这个词(记住inline是一个提示,这意味着编译器可以选择忽略您),那么它将把函数嵌入到调用它的其他块的代码中,这样就没有函数可以让链接器指向其他.cpp文件2。 举个例子: 文件ACPP:
这将创建一个对象文件(如a.obj),其中包含func1的代码,其他人可以这样调用它。链接器将能够告诉其他.cpp文件转到那里。 文件B.CPP:
这将创建包含func2的b.obj,并对func1进行函数调用。代码不知道func1是做什么的,它只是在这里有一个分支,并要求链接器在编译完所有内容后放入正确的地址。 这很好,但是如果a.cpp只有一个inlined版本的func1,那么链接器就没有什么可以给func2()的了。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |