在C中使用标签来实际标记代码以提高可读性是否有负面影响



我是一个自学C语言的初学者,几周前我有了用标签而不是注释来标记代码块的想法。我不是把它们用于流控制(我从未使用过goto(,而是为了区分我的注释(我用它们来处理bug、todo和"文档"(和我的代码块;标题";或";标题";,以提高可读性。例如:

int main()
{
while(true)
{
Update:
DoSomething1();
DoSomething2();
DoSomething3();
Render:
DrawSomething1();
DrawSomething2();
}
}

需要注意的一点是,如果标签后面有声明,代码将不会编译,但您可以添加;在标签后或在适当的地方使用括号(注意范围等(

Initialization:;
int width, height;
DoStuff:
{
width = 640;
height = 480;
}

我也用它来做一些事情,比如:

Player1: entities[0] = PlayerCreate(1);
Player2: entities[1] = PlayerCreate(2);

这样做有什么负面影响吗?未定义的行为或我应该注意的事情?

顶级注释非常善于描述为什么使用标签是个坏主意。

但是,我想添加另一个原因:

  1. 它们不够描述性
  2. 标签实际上不完整/差评

好的评论应该表明的意图。也就是说,该代码显示如何。注释解释了什么和/或为什么

也就是说,如果我们这样做:

FILE *fin = fopen("data.txt","r");

我们要打开什么文件?而且,为什么我们要打开它?

这里有一个更好的尝试:

// open the customer file [so we can read it] and be able to validate the name
// and account number of the proposed transaction(s)
FILE *fin = fopen("data.txt","r");

在第一个块中,您有:

while (!MustClose())

必须关闭什么为什么

此外,您还有Update:Render:

同样,你在更新什么why您渲染的是什么为什么


在中的第二个块中有:

Initialization:;
int width, height;

您在此处初始化的不是。你在定义。并且,widthheight什么的维度?绘图板、窗口、表面、主窗口、子窗口?

你最好使用(例如(:

// dimensions of main window (in pixels)
int width, height;

在第三个块中,您有:

Player1: entities[0] = PlayerCreate(1);
Player2: entities[1] = PlayerCreate(2);

这里Player1:是多余的多余cruft。它对PlayerCreate(1)是多余的

这就像在做:

x = 5;  // set the value of x to 5

而且,没有东西来描述块实际在做什么。我们必须推断我们正在从PlayerCreate创建玩家。

而且,如果entities有(例如(1000个元素呢?然后,我们会做:

// create all players
for (int i = 0;  i < 1000;  ++i)
entities[i] = PlayerCreate(i + 1);

相关内容

  • 没有找到相关文章

最新更新