这段代码片段定义得很好吗?

时间:2015-12-11 18:12:32

标签: c gcc armv7

进行学习练习我偶然发现了为ARMv7架构编写的以下代码:

register char* reg_r0 asm ("r0");
*reg_r0 = putch(*reg_r0);

包含此代码的函数由汇编程序例程和" r0"将包含一些指向某个静态变量的地址。代码使用gcc和-O0编译,并按预期工作(它将putch的返回值写入之前提到的静态变量)。按照惯例,返回值在R0中返回,所以我想知道某些编译器是否可以取消引用并在reg_r0返回后写入putch中包含的地址,如果返回值不是,则会导致某些访问冲突你应该写的地址。

0 个答案:

没有答案