小编fla*_*urn的帖子

C++中构造函数中dot <function name>的含义

我正在研究LLVM,发现了一段有趣的代码

  case ARM::BMOVPCRX_CALL: {
    EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::MOVr)
      .addReg(ARM::LR)
      .addReg(ARM::PC)
      // Add predicate operands.
      .addImm(ARMCC::AL)
      .addReg(0)
      // Add 's' bit operand (always reg0 for this)
      .addReg(0));

    EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::MOVr)
      .addReg(ARM::PC)
      .addReg(MI->getOperand(0).getReg())
      // Add predicate operands.
      .addImm(ARMCC::AL)
      .addReg(0)
      // Add 's' bit operand (always reg0 for this)
      .addReg(0));
    return;
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是关于.addReg.addImm.我不会说我是C++的新手,但我从未见过这种类型的代码.它是什么意思,它有什么作用?为什么有人想做这样的事情?

c++ llvm

2
推荐指数
1
解决办法
114
查看次数

tmux和vim被冻结

我刚开始使用tmux。使用运行会话vim。尝试交换中的分割缓冲区vim。通常我使用Ctrl+ w+ Ctrl+ x。请勿经常使用此组合,因此请勿将其映射到其他任何对象。由于某种原因,我的vim会议冻结了。不知道发生了什么。我可以执行tmux命令并在会话之间切换,但是不能执行任何操作vim。我的猜测是,上面提到的键盘组合可以在会话中执行某些操作(可能将其锁定)。Google搜索未显示任何有用的结果。有谁知道我对会话做了什么以及如何解锁?

这是我的 .tmux.conf

# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n C-h if-shell "$is_vim" "send-keys C-h"  "select-pane -L"
bind-key -n C-j if-shell "$is_vim" "send-keys C-j"  "select-pane -D"
bind-key -n C-k if-shell "$is_vim" "send-keys C-k"  "select-pane -U"
bind-key -n C-l if-shell …
Run Code Online (Sandbox Code Playgroud)

vim tmux

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

python3 int(param1,param2)中的第二个参数在设置为0时是什么意思?

我正在阅读Python 3 int(...)函数的文档,无法理解以下语句:

基数0表示完全解释为代码文字,因此实际基数为2,8,10或16,因此int('010',0)不合法,而int('010')是,以及int('010',8).

有人可以解释它到底在说什么吗?我无法弄清楚.

python int literals python-3.x

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

一种在 Qt 设计器中将复选框状态连接到小部件可见性的方法

有谁知道是否有办法将 Qt 中的复选框状态连接到 Qt Designer 中的对象可见性?我对 Qt 有点陌生,并且更喜欢使用 Qt 设计器而不是手动处理 UI 代码。我使用的 Qt 版本是 4.8.6

任何帮助表示赞赏。

qt qt-designer

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

为什么执行跳转指令?

我刚刚在一个小型嵌入式产品的启动加载器中看到了一个非常有趣的C代码.

代码由两部分组成:引导加载程序和主代码.主代码地址的开头存储在函数指针中.以下是我正在谈论的代码

typedef struct {
  uint32_t myOtherField;
  void (*mainCodeStartAddress)(void);
} MyStruct;

MyStruct myStruct = {0x89ABCDEF, 0x12345678};

void main(void) {
  // Some code
  ...
  myStruct.mainCodeStartAddress(); // Jump to the start of the application
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么这有效?为什么机器会转到应用程序代码?任何帮助表示赞赏.

c embedded pointers

0
推荐指数
1
解决办法
71
查看次数

服务器停止创建线程

我有一个非常简单的客户端 - 服务器代码.每次服务器收到数据包时,我都会创建一个处理它的线程.代码如下所示.我无法理解的是,有一段时间后我的服务器停止接收任何数据.它只是倾听并且没有收到任何东西.我无法弄清楚为什么.有谁知道原因.

我正在联想T470s上构建我的代码Fedora 29,Linux用户4.19.15-300.fc29.x86_64#1 SMP Mon 1月14日16:32:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

任何帮助表示赞赏.

/* 
  server.c
  cc -std=gnu11 -pedantic  -lpthread  server.c   -o server.c 
 */

#include <arpa/inet.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <pthread.h>
#include <poll.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define BUF_SIZE_B 1024

static int fd;

static void *handlePacketThreadWrapper(void *arg);

int main(void)
{
    pthread_t t;
    struct pollfd pollfd;
    struct sockaddr_in addr;
    uint16_t port = 9500;

    fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

    if (fd < …
Run Code Online (Sandbox Code Playgroud)

c sockets linux pthreads

0
推荐指数
1
解决办法
81
查看次数

标签 统计

c ×2

c++ ×1

embedded ×1

int ×1

linux ×1

literals ×1

llvm ×1

pointers ×1

pthreads ×1

python ×1

python-3.x ×1

qt ×1

qt-designer ×1

sockets ×1

tmux ×1

vim ×1