51c语言中null指针的问题

null的定义是(void *)0, 而在51中指向0地址的指针可能是合法的, 变量很可能就分配在外部0x0000处, 在程序中就很可能把这个合法的指针当null处理,从而产生难以寻找的bug. 这个问题可以通过定义一个在0x0000变量占位来解决:  __xdata __at (0x0000) char address_is_null = 0;(sdcc)

你可能感兴趣的:(51c语言中null指针的问题)