有人可以解释为什么这有效吗?
char c = '9';
int x = (int)(c - '0');
Run Code Online (Sandbox Code Playgroud)
为什么从char的ascii代码中减去'0'会导致char表示的数字?
我正在尝试为练习创建自己的malloc().我从这个帖子中得到了下面的代码.
typedef struct free_block {
size_t size;
struct free_block* next;
} free_block;
static free_block free_block_list_head = { 0, 0 };
// static const size_t overhead = sizeof(size_t);
static const size_t align_to = 16;
void* malloc(size_t size) {
size = (size + sizeof(free_block) + (align_to - 1)) & ~ (align_to - 1);
free_block* block = free_block_list_head.next;
free_block** head = &(free_block_list_head.next);
while (block != 0) {
if (block->size >= size) {
*head = block->next;
return ((char*)block) + sizeof(free_block);
} …Run Code Online (Sandbox Code Playgroud)