Tag: 成语

惯用法检查非零

当我想检查C中的值是否为0时,它是如何惯用的? if (!num) if (num == 0)

一个有趣的C链表成语

我正在接受一个C职位的采访,他们向我提出了一个我以前没有遇到的习语。 这是一个简化涉及链表的各种算法的实现的技巧,我想知道是否有其他人遇到过这个问题。 假设我们定义了一个链表记录: typedef struct _record { char* value; struct _record* next; } record; 我们需要一个插入新记录的函数,以便整个列表保持对记录中的值进行排序。 以下实现比我将使用的任何内容都简单,尽管可读性较差。 void insert_sorted(record** r, const char* value) { record* newrec = NULL; while(*r && strcmp(value, (*r)->value) > 0) r = &((*r)->next); /* move r to point to the next field of the record */ newrec = malloc(sizeof(record)); newrec->value = strdup(value); […]