【发布时间】:2010-12-13 06:17:56
【问题描述】:
我正在查看一些 C 代码,并注意到它充满了围绕代码块的大括号,没有任何类型的控制结构。看一看:
//do some stuff . . .
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
{
//a block! why not?
char *tmp_argv[3];
tmp_argv[0] = argv[0]; tmp_argv[1] = str; tmp_argv[2] = prefix;
t = clock();
fprintf(stderr, "[bwa_index] Convert nucleotide PAC to color PAC... ");
bwa_pac2cspac(3, tmp_argv);
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
}
为什么要在代码中插入这样的块?它充满了他们。有某种性能优势吗?一些神秘的C东西?为什么???
编辑:此代码来自BWA,这是一个使用Burrows-Wheeler transform 将小序列与大参考序列对齐的生物信息学程序,以防你们中的任何人想知道。此代码示例与应用程序的功能并不是特别相关。
【问题讨论】:
-
这种做法在 C 和 C++ 中可能有不同的动机。您的代码看起来像 C,而您的问题被标记为
C++。你确定你正确地标记了你的问题吗? -
啊,不错。这确实是 C。我不知道为什么我认为它是 C++。更改了标签。
-
然后也编辑文本。它仍然说“我正在查看一些 C++ 代码......”
标签: c scope curly-braces