作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我最近接受了一次 C++ 面试,有人问我,编译器如何区分两个不同类中具有相同名称的静态数据成员?
由于所有静态数据变量都存储在数据段中,因此编译器必须有一种方法来跟踪哪些静态数据属于哪个类,尤其是当它们具有相同的名称时。
编辑:我回答了name mangling,他拒绝说name mangling只在同一个类(class)的成员之间使用。
最佳答案
名字与他们的类名混淆了。使用 clang 编译器的示例
class A {
static int i;
};
int A::i = 0;
输出
$ clang++ -cc1 -emit-llvm main1.cpp -o -
; ModuleID = 'main1.cpp'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
target triple = "i386-pc-linux-gnu"
@_ZN1A1iE = global i32 0, align 4
_ZN1A1iE
在哪里
$ c++filt _ZN1A1iE
A::i
关于c++ - 编译器如何区分 C++ 中不同类中具有相同名称的静态数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3857503/
所以我有这个 UltraTicTacToe 游戏,我正在用 HTML/CSS/JS 编码。它由表中表中的表组成。当您单击 X 或 O 时,我想要突出显示您应该进入的下一个 TicTacToe 牌 ta
Some text Some more text 如何让每个 .example 的 .whatever 包含其 .test 的内容? 例如,如果代码是这样的: Som
我是一名优秀的程序员,十分优秀!