判断一个数是否为2的n次幂,最直接的方法:
x&(x-1)==0,
给指定地址赋值
char* p = (int*)0x100000; *p='a'
C语言如何跳转到指定的内存地址运行
1.把那个要跳的地址转换成一个函数指针,然后调用这个函数指针.
2.直接用goto
C嵌入汇编更容易实现
#include <stdio.h>
void Print()
{
printf("HelloWorld!/n");
}
int main()
{
_asm
{
lea eax, Print
call eax
}
printf("Main/n");
return 0;
}
#include <stdio.h>
void Print()
{
printf("HelloWorld!/n");
}
int main()
{
_asm
{
lea eax, RetAddr
push eax
jmp Print
RetAddr://call执行完之后返回到这里
}
printf("Main/n");
return 0;
}