小编use*_*844的帖子

PUSH/POP指令是否被认为是RISC或CISC?

有人问我,如果在接受记者采访时PUSH,并POP是RISC或CISC指令.我说他们是RISC,但他们告诉我他们实际上是CISC指令.我建议ARM(一种常见的RISC实现)有这些指令,但他们指出ARM是混合的而不是纯粹的RISC.

我无法在网上找到任何明确的证据.是PUSHPOP指令真的被认为是CISC架构的标志,还是可以在RISC系统上找到?为什么?

assembly instruction-set cpu-architecture risc

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

C++与C中函数调用中的void指针

我有这段代码在C而不是C++中工作,是否可以使它在C和C++上工作?

void foo(void* b)
{
   int *c = b;
   printf("%d\n",*c); 

}

int main ()
{
 int a = 1000;

 foo(&a);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

C++:

1 In function 'void foo(void*)':
2 Line 3: error: invalid conversion from 'void*' to 'int*'
3 compilation terminated due to -Wfatal-errors.
Run Code Online (Sandbox Code Playgroud)

C:

1000
Run Code Online (Sandbox Code Playgroud)

请帮忙

c c++ void-pointers

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

为什么strstr()搜索空字符串总是返回true?

为什么strstr对于以下代码,该函数始终返回true:

void main(){
    char* a = "qweqweqweqweqweqw";
    char b[5] = {0x00,0xff,0xaa,0xbb,0xcc};
    printf("%p",strstr(a,b));
}
Run Code Online (Sandbox Code Playgroud)

当我将null字符串替换为0x00其他字符串时,错误消失了。请帮我理解为什么?

c

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

char指针和printf

嗨,请告诉我以下输出:

main()
{
  char ***x = "jjhljlhjlhjl";
  char **q = *x;

  printf("x:%s\n",x);
  printf("q:%s\n",&q);    

}

Output:
x:jjhljlhjlhjl
q:jjhl
Run Code Online (Sandbox Code Playgroud)

为什么q不打印整个x?

c printf pointers

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

Verilog总是阻止声明

我只是想知道这两个陈述之间的区别

always @(posedge CLK)
    begin
       state <= next_state;
    end
Run Code Online (Sandbox Code Playgroud)

和:

always @(CLK)
    begin
     case(CLK)
        1'b1:
           state <= next_state;
        1'b0:
           state <= state;
    end
Run Code Online (Sandbox Code Playgroud)

两者之间有区别吗?

谢谢

verilog

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