小编mah*_*esh的帖子

为什么与混合数据类型的位字段相比,相同数据类型的位字段的大小更小

我很想知道为什么具有相同数据类型的位字段比使用混合数据类型更小.

struct xyz 
{ 
  int x : 1; 
  int y : 1; 
  int z : 1; 
}; 


struct abc 
{ 
  char x : 1; 
  int y : 1; 
  bool z : 1; 
}; 
Run Code Online (Sandbox Code Playgroud)

sizeof(xyz)= 4 sizeof(abc)= 12.

我正在使用VS 2005,64位x86机器.

一台机器/编译器级别的答案会很棒.

c c++ bit-fields

5
推荐指数
1
解决办法
1560
查看次数

联盟内部的奇怪行为类对象

嗨,我想知道以下代码的原因

void main()
{
  class test
  {
    public:
      test(){}
      int k;
  };

  class test1
  {
    public:
      test1(){}
      int k;
  };

  union Test
  {
    test t1;
    test1 t2;   
  };
}
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,它给出错误" 错误C2620:联合'测试':成员't1'具有用户定义的构造函数或非平凡的默认构造函数 "

class test
{
  public:
  //test(){}
  int k;
};

class test1
{
  public:
  //test()1{}; 
  int k;
};

union Test
{
  test t1;
  test1 t2; 
};
Run Code Online (Sandbox Code Playgroud)

对于上面,没有错误.

我想知道原因.

先感谢您.:)

c++ unions

5
推荐指数
3
解决办法
1万
查看次数

为什么PathPing比Tracert更快?

我想知道为什么PathPing比Tracert更快.我google了很多,但对我发现的答案不满意,大多数答案都谈到了它的功能,但没有说明为什么它比tracert更快.

Tracert通过增量TTL工作,并从每个节点收集响应,直到到达目的地

但PathPing如何运作?

networking traceroute

4
推荐指数
1
解决办法
1万
查看次数

编译器执行并提供默认构造函数的构造函数代码中会发生什么?

我想编译器提供的构造函数是什么?该构造函数是否进行内存分配以及创建对象所需的所有内容.

我不是从成员变量初始化的角度来问这个问题.我想知道编译器执行的默认构造函数代码中发生了什么,并提供默认构造函数

c++ constructor

4
推荐指数
1
解决办法
1976
查看次数

为什么访问违反cout和堆栈溢出printf

我想知道为什么在以下两个代码片段中针对printf的cout和Stack Overflow发生访问冲突.

我想知道为什么第一个代码而不是Stack Overflow的Access Violation.

我获得访问冲突的第一个代码:

void Test();

void Test()
{
    static int i = 0;
        cout << i++ << endl;    
    Test();
}
int main() 
{

    Test();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到堆栈溢出的第二个代码:

void Test();

void Test()
{
    static int i = 0;
        printf("%d\n", i++);    
    Test();
}
int main() 
{

    Test();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

答案将受到高度赞赏.

提前致谢

c c++ stack-overflow

4
推荐指数
1
解决办法
994
查看次数

如何在不使用NTP,PTP的情况下计算单向数据包延迟

我正在寻找计算分组交换网络中单向延迟的方法.我不想使用NTP或PTP(网络时间协议,精确时间协议).

考虑一下场景:

Host-1将数据包发送到Host-2.两台主机都有不同的时钟频率,主机位于不同的国家/地区.

分组可以是UDP/TCP /第2层帧.

有没有办法同步两台主机的时钟速率,以便计算单向延迟.

现在你们如何计算单向延迟而不依赖于时序协议.我正在寻找一些通用的公式来做到这一点.

我非常感谢这个问题的答案.

非常感谢提前.

networking

3
推荐指数
2
解决办法
3104
查看次数

程序如何成为一个过程.OS如何使程序成为一个过程

我想知道OS如何实际制作程序.Os采用什么步骤使程序成为一个过程.

我的意思是程序如何成为一个过程,在将程序作为一个过程之前,OS为内核数据结构添加了什么参数

先感谢您.

c c++ operating-system process

3
推荐指数
1
解决办法
2185
查看次数

malloc/new是否从Cache或RAM返回内存块?

我想知道malloc/new是否从Cache或RAM返回内存块.

提前致谢.

c c++ memory memory-management

3
推荐指数
2
解决办法
3087
查看次数

虚拟继承:Base Ctor没有调用Most Derived Class?

class Base
{
      public:
          Base(){}
          Base(int k):a(k) 
          {     
          }
            int a;
};

class X:virtual public Base
{
      public:
            X():Base(10){}
            int x;
};

class Y:virtual public Base
{
      public:
            Y():Base(10){}
            int y;
};

class Z:public X,public Y
{
public:
    Z():X(10){}
};

int main()
{
           Z a;
           cout << a.a;
           return 1;
}
Run Code Online (Sandbox Code Playgroud)

在上述情况下,Z():X(10){} Base(int k):a(k)不打电话,但是当我改变Z():Base(10){}Base(int k):a(k)被调用.为什么?

谢谢.

c++ inheritance multiple-inheritance virtual-inheritance

3
推荐指数
1
解决办法
407
查看次数

int arr = 1 && arr时代码崩溃; 但不是int arr = 0 && arr;

我想知道为什么下面的代码崩溃了.

int main( ) 
{  
    int arr = 1 && arr;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

但不是以下代码

int main( ) 
{  
    int arr = 0 && arr;
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

c

3
推荐指数
1
解决办法
188
查看次数