这是我使用 lldb 读取 rflags 寄存器时得到的输出
(lldb) register read rflags
rflags = 0x0000000000000246
Run Code Online (Sandbox Code Playgroud)
我知道每一位代表一个特定的标志,但是如果有一个输出给我这些标志的值(例如进位标志、零标志等)会很好。
有没有办法使用 lldb 做到这一点?
另一个问题(我现在找不到的)的解释是"字符串"和{'s','t','r','i','n','g','\ 0'}等价.实际上,下面的前四个声明都编译并且似乎做同样的事情.但那为什么第五个声明不编译?看起来它们毕竟不是等同的.所以我的问题是四个正确的和一个不正确的cstring声明究竟发生了什么?
int main()
{
char cString1[]="string";
char * cString2 = "string";
char cString3[] = {'s','t','r','i','n','g', '\0'};
char cString4[7] = {'s','t','r','i','n','g','\0'};
char * cString5 = {'s','t','r','i','n','g','\0'};
return 0;
}
Run Code Online (Sandbox Code Playgroud) 有很多关于C++好友关键字的帖子.我看到有朋友课的好处.关于封面是否被friend关键字破坏,提出并回答了许多问题,但所有这些响应似乎都是针对使用朋友进行课程的.
但朋友的功能怎么样?我不能为我的生活看到你为什么会这样想.一旦你有任何朋友的功能,你是不是允许任何一个类来访问你所有的私人数据/功能?
class Foo
{
private:
int neverSetToZero;
public:
Foo() { neverSetToZero = 1; }
friend void Whateveryoudowiththisdonttouchneversettozero(Foo * t);
};
void Whateveryoudowiththisdonttouchneversettozero(Foo * t)
{
(*t).neverSetToZero=0;
}
int main()
{
Foo t;
Whateveryoudowiththisdonttouchneversettozero(&t);
return 0;
}
Run Code Online (Sandbox Code Playgroud)