小编tez*_*tez的帖子

如何打印结构和数组?

Go似乎能够直接打印结构和数组.

struct MyStruct {
    a: i32,
    b: i32
}
Run Code Online (Sandbox Code Playgroud)

let arr: [i32; 10] = [1; 10];
Run Code Online (Sandbox Code Playgroud)

rust

35
推荐指数
5
解决办法
2万
查看次数

两个具有相同ID的视图

R.id.id_name在扩充XML之后,android如何使用它来查找视图?

1.假设我有两个XML,一个按钮,每个都有相同的ID.

我已经给他们充气并把它们变成了意见

3.在R.id类中,只int为这两个按钮创建一个.

android如何区分具有相同id的这些按钮使用相同的资源名称(R.id.id_name).

android

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

NOT(〜)vs NEGATION(!)

#include <iostream>

using namespace std;
int main(int argc, char *argv[]) 
{
   int i=-5;
   while(~(i))
   {
      cout<<i;
      ++i;
   }

 }
Run Code Online (Sandbox Code Playgroud)

输出为-5,-4,-3,-2.不应该打印值直到-1?为什么它只到-2.请解释一下'not'和'negation'运算符之间的区别.当我编写程序时,它们就是bug的来源.

while(i)
Run Code Online (Sandbox Code Playgroud)

我知道循环条件对于正和负i都是正确的,除了0.

while(!i) vs while(~i)
Run Code Online (Sandbox Code Playgroud)

对于'i'的值,上述两个循环是否被执行?

c c++ bitwise-operators logical-operators

22
推荐指数
2
解决办法
7万
查看次数

__init__方法在python中返回什么

class Num:
   def __init__(self,num):
      self.n = num
Run Code Online (Sandbox Code Playgroud)

我读到该__init__方法返回None.当我执行时a=Num(5),Num(5)将调用类的__init__方法.但是如果__init__ 返回Nonea应该引用nothing.But 而是a引用NumClass 的对象.它是如何发生的?那么__init__返回None还是类的对象?

python

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

Rust FFI.转换为void指针

我有一个原型如下的功能

//opaque struct
struct mosquitto;

struct mosquitto *mosquitto_new(const char *id, bool clean_session, void *obj);
Run Code Online (Sandbox Code Playgroud)

在我的c代码中,我将其称为如下.

struct mosquitto *m = mosquitto_new(buf, true, NULL);
Run Code Online (Sandbox Code Playgroud)

现在我想在我的防锈代码中调用上面的API.rust-bindgen产生以下结合

pub enum Struct_mosquitto { }
pub fn mosquitto_new(id: *const ::libc::c_char, clean_session: u8, obj: *mut ::libc::c_void) -> *mut Struct_mosquitto;
Run Code Online (Sandbox Code Playgroud)

当我试图调用上面的API时,我在第三个参数上遇到了不匹配.

let s = CString::new("ravi").unwrap();
let mqtt = mosquitto::mosquitto_new(s.as_ptr(), 1, ptr::null());
Run Code Online (Sandbox Code Playgroud)

如何将NULL传递给*mut c_void?

奖金问题:如何将生锈结构传递给*mut c_void?

ffi rust

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

Linux获取所有网络接口名称

我需要收集所有的接口名称,即使是目前尚未启动的接口名称.喜欢ifconfig -a.

getifaddrs()正在多次迭代相同的接口名称.如何只使用一次收集所有界面名称getifaddrs()

c linux network-interface

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

如何创建Rust回调函数以传递给FFI函数?

这就是C API的外观

void mosquitto_connect_callback_set(struct mosquitto *mosq, void (*on_connect)(struct mosquitto *, void *, int));
Run Code Online (Sandbox Code Playgroud)

rust-bindgen 为我生成了这个

pub fn mosquitto_connect_callback_set(
    mosq: *mut Struct_mosquitto,
    on_connect: ::std::option::Option<
        extern "C" fn(
            arg1: *mut Struct_mosquitto,
            arg2: *mut ::libc::c_void,
            arg3: ::libc::c_int,
        ) -> (),
    >,
)
Run Code Online (Sandbox Code Playgroud)

如何创建一个生锈回调函数以传递给on_connect上面的防锈绑定中的参数?

ffi rust

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

关闭%运算符的错误

这段代码

let vec = vec![1, 3, 4, 5, 6];
for i in vec.iter().filter(|x| x % 2 == 0) {
    println!("{}", i);
}
Run Code Online (Sandbox Code Playgroud)

产生错误

<anon>:4:36: 4:37 error: binary operation `%` cannot be applied to type `&&_` [E0369]
<anon>:4     for i in vec.iter().filter(|x| x % 2 == 0) {
                                            ^
Run Code Online (Sandbox Code Playgroud)

我无法理解这个错误的含义.这与编译器如何创建匿名闭包结构有关吗?

以下代码似乎正在运行.

for i in vec.iter().filter(|&x| x % 2 == 0) {
Run Code Online (Sandbox Code Playgroud)

rust

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

在union中使用char数组

我能够打印出int的地址和值,但不能打印出union的字符.为什么会这样

#include <iostream>

using namespace std;

union Endian
{
    int i;
    char c[sizeof(int)];
    int j;
};

int main(int argc, char *argv[]) {
    Endian e;
    e.i = 20;
    cout << &e.j;
    cout << &e.i;
    cout << &e.c[0]; //Why can't I print this address
    cout << e.c[1]; // Why can't I print this value

}
Run Code Online (Sandbox Code Playgroud)

O/P:0x7fff5451ab68 0x7fff5451ab68

c++

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

.so库中的全局变量

Say库x.so有一个全局变量y,由fun1库中的函数(比如说)操纵.

当一个进程p1加载到RAM中,其代码使用fun1库中的函数时x.so,库x.so将被ld.so加载到RAM(如果尚未存在)中,并且在程序开始执行之前解析函数符号.

现在,这个全局变量在哪里创建.它在进行中p1吗?

当另一个进程p2也使用fun1(正在进行操作y)时会发生什么?

c c++ linux shared-libraries

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