C语言中使用预处理器指令的大型数组

C语言中使用预处理器指令的大型数组,c,arrays,c-preprocessor,C,Arrays,C Preprocessor,以下语法是否有效?如果是,请解释其工作原理 double array[SIZE][SIZE] = { #include "float_values.txt" } 是的,这是有效的C语法 在C++和C++中,代码>包含指令非常简单:它们只是复制和粘贴你正在使用的文件的内容,替换包含< /Cord>指令> < /P> 例如,如果“float_values.txt”文件如下所示: {1.0, 2.0}, {3.0, 4.0} double array[SIZE][SIZE] = {

以下语法是否有效?如果是,请解释其工作原理

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

是的,这是有效的C语法

在C++和C++中,<>代码>包含指令非常简单:它们只是复制和粘贴你正在使用的文件的内容,替换<代码>包含< /Cord>指令> < /P> 例如,如果“float_values.txt”文件如下所示:

{1.0, 2.0},
{3.0, 4.0}
double array[SIZE][SIZE] = {
    {1.0, 2.0},
    {3.0, 4.0} 
}
然后预处理器会将您的代码转换为如下所示:

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

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

是的,此代码段有效

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

您尝试过吗?C预处理器…否;右大括号后面缺少分号,除非包含的文件包含以下内容:
{{1,2},{3,4};intabs(inti){return(i<0)?-i:i;