在C中使用预处理程序指令的大型数组

时间:2015-04-30 03:50:38

标签: c arrays c-preprocessor

以下是有效的语法吗?如果是,请解释它的工作原理。

double array[SIZE][SIZE] = {
    #include "float_values.txt"
}

2 个答案:

答案 0 :(得分:4)

是的,这是有效的C语法。

在C和C ++中,#include指令非常简单:它们只是将您正在使用的文件的内容复制并粘贴到当前文件中,替换#include指令。

例如,如果您的“float_values.txt”文件如下所示:

{1.0, 2.0},
{3.0, 4.0}

然后预处理器会将您的代码转换为如下所示:

double array[SIZE][SIZE] = {
    {1.0, 2.0},
    {3.0, 4.0} 
}

但是,您必须确保正确定义SIZE

答案 1 :(得分:1)

是的,此代码段有效。

预处理器将找到#include指令并在给定的搜索路径中搜索名为float_values.txt的文件。然后将获取该文件的内容,并将#include "float_values.txt"替换为该文件的内容。 如果生成的代码有效,则完全取决于文件的内容。 为了有效,该文件必须包含用于初始化二维二进制数组的数据,但不得包含超过SIZE值允许的值。 较少的值是可以的,因为剩余的双精度值将被默认初始化。

相关问题