这个C技巧有什么作用?

时间:2011-10-20 21:37:10

标签: c

我在this answerWhat is your favorite C programming trick?

中看到了以下代码

这段代码有什么作用?它有用吗?

double normals[][] = {
    #include "normals.txt"
};

4 个答案:

答案 0 :(得分:4)

这使用预处理器来初始化数组。

它基本上是通过从外部文本文件中读取数据来使用值填充数组的代码。请注意,这要求“normals.txt”填充与C语法匹配的值,即:

{0, 0, 1},
{0, 1, 0},
{1, 0, 0}

答案 1 :(得分:0)

使用文件“normals.txt”的内容初始化2D数组,该文件可能包含有效的C代码,可能与其他代码共享或者是其他软件的输出。

答案 2 :(得分:0)

使用预处理程序指令#include将粘贴其引用的文件中的任何代码...因此“normals.txt”中的任何内容都将被格式化为适合的有效C语法代码normals的数组初始值设定项列表。

由于预处理发生在实际编译步骤之前,这将创建有效的C代码来初始化normals 2D数组,而编码器不必在实际的.c文件中创建大量文本来初始化值数组。

答案 3 :(得分:0)

这会造成丑陋的代码。更清晰的选择是生成normals.txt文件,生成一个具有完整数组声明的.c文件。