小编Ale*_*nea的帖子

在标准C中将int转换为char*(不使用itoa)

我已经声明并初始化了两个变量,如下所示:

int a=5;
char* str;
str = (char*)calloc(255, sizeof(char));
Run Code Online (Sandbox Code Playgroud)

我想在标准C中将int转换为char*.我不能使用C++中的任何转换函数,例如itoa.

我正在使用Ubuntu 11.10

c int char itoa

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

GNU ARM 汇编程序将 mov 更改为 add?

社区!

我有以下单行源文件,称为 first.S

mov R1, R2
Run Code Online (Sandbox Code Playgroud)

我生成一个目标文件如下:

$ arm-none-eabi-as -mcpu=cortex-m3 -march=armv7 -mthumb -c -o first.o first.S 
Run Code Online (Sandbox Code Playgroud)

那我拆开看看

$ arm-none-eabi-objdump -d first.o

first.o:     file format elf32-littlearm


Disassembly of section .text:

00000000 <.text>:
   0:   1c11        adds    r1, r2, #0
Run Code Online (Sandbox Code Playgroud)

显然,在这种情况下,两条指令(movadd)具有相同的、所需的效果。

不过,问题是:为什么?

根据 ARMv7-M 体系结构参考手册,mov 寄存器指令存在多种编码,但是汇编程序选择将其编码为add指令。

在任何文件中是否有描述此类决定的地方?

谢谢!

assembly encoding arm gnu thumb

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

如何在C中链接共享对象?

我编写了一个使用共享对象的简单程序,并使用打开了该对象dlopen()。我还编译并链接了共享对象,如下所示:

gcc -o libmylib.so libmylib.c -shared -fPIC -Wall

gcc -o program program.c -L. -lmylib -ldl -Wall
Run Code Online (Sandbox Code Playgroud)

当我第一次尝试运行该程序时,它表示类似

cannot open libmylib.so: no such file or directory
Run Code Online (Sandbox Code Playgroud)

因此我搜索了Internet,发现我必须将共享对象复制到/lib/i386-linux-gnu/,才能运行程序。因此,我这样做了,并且奏效了,但是后来我尝试以其他方式做到这一点,因此libmylib.so/lib/i3686-linux-gnu/目录中删除了它。现在,当我尝试运行该程序时,它没有显示任何错误,但一直在说Segmentation fault。很明显,找不到共享对象,但是如何在不复制任何内容的情况下链接它?

我正在使用Ubuntu 11.10

linux linker gcc shared-libraries

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

如何检查java中vector中的用户自定义条目?

我有一个条目矢量.每个条目都是此类的一个实例:

public class Entry implements Comparable<Entry>{

    private String _key;
    private CustomSet _value;

    [...]

    @Override
    public int compareTo(Entry a) {
        return this._key.compareTo(a._key);
    }
}
Run Code Online (Sandbox Code Playgroud)

向量声明如下:

Vector<Entry> entries = new Vector<Entry>();
Run Code Online (Sandbox Code Playgroud)

之后,填充向量.然后我想检查某个键是否在向量中的某个位置.所以我这样做:

Entry sample = new Entry(key, new CustomSet());
if (entries.contains(sample)) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.为什么?我怎样才能让它发挥作用?

PS CustomSet是另一个用户定义的类,与我的观点无关

java contains vector comparable

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

标签 统计

arm ×1

assembly ×1

c ×1

char ×1

comparable ×1

contains ×1

encoding ×1

gcc ×1

gnu ×1

int ×1

itoa ×1

java ×1

linker ×1

linux ×1

shared-libraries ×1

thumb ×1

vector ×1