Tag: 可读性

在初始化C中的多个资源的函数中,有哪些处理错误(清理和中止)的好方法?

首先,如果有人可以改写问题以使其更清楚,请做。 C编程中常见的情况是要按特定顺序初始化/分配多个资源。 每个资源都是后续资源初始化的先决条件。 如果其中一个步骤失败,则必须取消分配先前步骤的剩余资源。 理想的伪代码(利用神奇的通用pure-unobtainium clean_up_and_abort()函数)看起来大致如下: err=alloc_a() if(err) clean_up_and_abort() err=alloc_b() if(err) clean_up_and_abort() err=alloc_c() if(err) clean_up_and_abort() // … profit() 我已经看到了几种处理这种方法的方法,所有这些方法似乎都有明显的缺点,至少在人们倾向于考虑“良好实践”方面。 在处理这种情况时,构造代码的最可读和最不容易出错的方法是什么? 效率是优选的,但为了便于阅读,可以牺牲合理的效率。 请列出优点和缺点。 欢迎讨论多种方法的答案。 我们的目标是希望最终得到一套解决这个问题的几种首选方法。 我将从我已经看过的一些方法开始, 请对它们进行评论并添加其他方法 。

使C源代码中的大常量更具可读性?

我正在研究微处理器的一些代码。 它有一些大的关键常数。 #define F_CPU 16000000UL 在这种情况下,这是CPU频率。 在赫兹。 事实上,如果没有在数字上手动标记光标,则很难判断它是1,600,000,160,000,000还是16,000,000。 如果我将逗号放在#define F_CPU 16,000,000UL的数字中,它会截断常量。 我使用了一些具有特定数字分隔符的深奥语言,旨在使大数字更具可读性(ex 16_000_000 ,主要是用于MCU的语言)。 大型“神奇数字”在嵌入式内容中相当普遍,因为它们需要描述MCU如何与现实世界对话。 在C中有这样的东西吗?