我想了解真正需要一个空指针,例如在下面的代码中,我使用强制转换来能够以不同的方式使用相同的 ptr,那么如果可以强制转换,为什么真的有一个空指针?
int main()
{
int x = 0xAABBCCDD;
int * y = &x;
short * c = (short *)y;
char * d = (char*)y;
*c = 0;
printf("x is %x\n",x);//aabb0000
d +=2;
*d = 0;
printf("x is %x\n",x);//aa000000
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我对任务的 TCB 和 RTOS 中的任务堆栈之间的差异有一点误解,TCB 不是已经携带了有关上下文切换的所有所需信息(例如寄存器值等)吗?
谢谢。