谁能告诉我这两个变量的作用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) 在这段代码中,对象栏是一个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) 几个小时我已经搜索了我的问题的答案,但没有用.
我的问题:我想定义一个可以被linux内核中的两个文件访问(w/r)(共享)的变量:source/arch/x86/kvm/x86.c和source/kernel/sched/core.c.
我失败的尝试:我试图export_symbol用来定义一个全局变量x86.c.但编译错误消息说:
var是未定义的引用
还有其他解决方案吗?我是linux内核编程的新手.提前致谢.