小编Jia*_*hen的帖子

strcpy gcc内联汇编代码

谁能告诉我这两个变量的作用int rsrc, rdst;是什么?或者通过声明向我解释以下代码?

static inline char * asm_strcpy(char *dst, char *src) {
    int rsrc, rdst;
    __asm__ __volatile__(
        "1: \tlodsb\n\t;"
        "stosb\n\t;"
        "testb %%al,%%al\n\t;"
        "jne 1b;"
        : "=&S" (rsrc), "=&D" (rdst)
        : "0" (src),"1" (dst) 
        );
    return dst;
}
Run Code Online (Sandbox Code Playgroud)

c assembly gcc inline-assembly

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

可以修改C ​​++ const对象的成员

在这段代码中,对象栏是一个const类型,但是通过const函数,我仍然可以修改成员x的值.那是不合理的吗?

输出是

15 25

// overloading members on constness
#include <iostream>
using namespace std;

class MyClass {
    int x;
  public:
    MyClass(int val) : x(val) {}
    int& get() const {return x;}
    int& get() {return x;}
};

int main() {
  MyClass foo (10);
  const MyClass bar (20);
  foo.get() = 15;         
  bar.get() = 25;        
  cout << foo.get() << '\n';
  cout << bar.get() << '\n';

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

c++ const

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

如何定义几个源文件访问的linux内核变量?

几个小时我已经搜索了我的问题的答案,但没有用.

我的问题:我想定义一个可以被linux内核中的两个文件访问(w/r)(共享)的变量:source/arch/x86/kvm/x86.csource/kernel/sched/core.c.

我失败的尝试:我试图export_symbol用来定义一个全局变量x86.c.但编译错误消息说:

var是未定义的引用

还有其他解决方案吗?我是linux内核编程的新手.提前致谢.

c c++ linux global-variables linux-kernel

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