小编olo*_*uki的帖子

关于C - union中的union作为一种类型并且读作另一种类型的问题 - 是否已实现定义?

我正在阅读K&R中关于C的联合,据我所知,联合中的单个变量可以包含几种类型中的任何一种,如果某些东西存储为一种类型并且提取为另一种,则结果纯粹是实现定义的.

现在请检查以下代码段:

#include<stdio.h>

int main(void)
{
  union a
  {
     int i;
     char ch[2];
  };

  union a u;
  u.ch[0] = 3;
  u.ch[1] = 2;

  printf("%d %d %d\n", u.ch[0], u.ch[1], u.i);

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

输出:

3 2 515
Run Code Online (Sandbox Code Playgroud)

在这里,我在分配值u.ch,但来自检索u.chu.i.它是实现定义的吗?或者我做的事情真的很傻?

我知道这对其他大多数人来说似乎都是初学者,但我无法弄清楚输出背后的原因.

谢谢.

c undefined undefined-behavior unions

29
推荐指数
5
解决办法
8598
查看次数

使用Cmake和Qt Creator

我想Qt creator和他们Cmake一起使用(请不要问我关于我的动机,接受这个作为给定的.)

我成功地设置了Qt创建者使用cmake"Cmake":看到这个, 这个这个文件关于我是如何做到的.

我成功创建了hello world项目,但我无法在项目中创建文件,只将现有文件添加到项目树中,之后将其添加到cmake列表中.Qt创建者"添加新..."的标准操作不起作用,我找不到原因.

有没有人一起使用Qt创作者和"Cmake"?这种组合实际上是否可行?

注意:我正在使用Qt creator v2.4.1.

c++ ide cmake qt-creator

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

如何使用QMutex?

我是Qt的新手,我正在寻找Qt中的多线程.
正如我在Qt Documents中所学到的,我为两个线程定义了两个类:

#include <QThread>
#include <QMutex>

class thread_a : public QThread
{
    Q_OBJECT
public:
    explicit thread_a(QObject *parent = 0);
    int counter;

protected:
    void run();
};
Run Code Online (Sandbox Code Playgroud)

并在CPP文件中:

#include "thread_a.h"

thread_a::thread_a(QObject *parent) :
    QThread(parent)
{
    counter=0;
}

void thread_a::run()
{
    counter++;
}
Run Code Online (Sandbox Code Playgroud)

第二个线程类是相同的,但counter--run()方法中.
然后我运行这两个线程main.ccp.

现在我的问题:
我如何可以共享counterthread_athread_b使用QMutex

c++ qt multithreading mutex qmutex

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

标签 统计

c++ ×2

c ×1

cmake ×1

ide ×1

multithreading ×1

mutex ×1

qmutex ×1

qt ×1

qt-creator ×1

undefined ×1

undefined-behavior ×1

unions ×1