我不知道Java中哈希字符(uint32_t ror(int reg, int shiftvalue, struct machine_state *mach) {
if (shiftvalue != 0) {
printf("ror : non zero shift\n");
mach->shifter_carryout = read_bit(reg, shiftvalue-1);
int firstYbits = reg << (32 - shiftvalue);
int lastbits = reg >> shiftvalue;
return (firstYbits | lastbits);
} else {
uint32_t ret = reg;
printf("%i shift is 0 ror\n", ret);
return reg;
}
uint32_t* process_args(uint32_t instr, struct machine_state *mach) {
uint32_t rn = extract_bits(instr, 16, 4);
uint32_t rd = extract_bits(instr, 12, 4);
uint32_t o2 = extract_bits(instr,0, 12);
bool imm = read_bit(instr, 25);
uint32_t flagS = read_bit(instr, 20);
uint32_t (*shift_ptr[4]) (int x, int y, struct machine_state *mach);
shift_ptr[0] = lsl;
shift_ptr[1] = lsr;
shift_ptr[2] = asr;
shift_ptr[3] = ror;
if (imm) {
printf("%i before ror", extract_bits(instr, 0, 4));
o2 = ror(extract_bits(instr,0, 8), 2 * extract_bits(instr, 8, 4), mach);
}
if (!imm && read_bit(instr,4)) {
int reg = extract_bits(instr, 0, 4);
int shift = extract_bits(instr, 5, 2);
int sregv = extract_bits(mach->registers[extract_bits(instr, 8, 4)], 0, 8);
o2 = (*shift_ptr[shift]) (mach->registers[reg], sregv, mach);
}
if (!imm && !read_bit(instr, 4)) {
int reg = extract_bits(instr, 0, 4);
int shift = extract_bits(instr, 5, 2);
uint8_t val = extract_bits(instr, 7, 5);
o2 = (*shift_ptr[shift]) (mach->registers[reg], val, mach);
}
uint32_t *ret = (uint32_t*) malloc(4* sizeof(int32_t));
uint32_t arr[4] = {rn, o2, rd, flagS};
ret = &arr[0];
printf("%i, dest register as about to be returned\n", ret[2]);
return ret;
}
)的任何特殊含义。但是,我无法使用包含哈希字符的名称创建变量。有什么缘故吗?实际上有什么特别的含义吗?