C数据类型REAL是否仅在GCC中可用?

C数据类型REAL是否仅在GCC中可用?,c,gcc,C,Gcc,我目前正在尝试使用linpack C源代码构建iOS应用程序 在查看原始数据时,我遇到了我以前从未见过的数据类型REAL。在调查了一段时间后,我发现它可以通过GCC使用,但不幸的是,它不在XCode(或它的标准C编译器)中 这就是为什么我想知道REAL是否仅在gcc上可用,或者是否有任何方法使其与Xcode或其他编译器兼容。如果您查看文件开头的预处理器指令,您将看到REAL实际上是一个宏,定义为float或double。因此,它特定于此文件,而不是gcc。如果您查看文件开头的预处理器指令,您将看

我目前正在尝试使用linpack C源代码构建iOS应用程序

在查看原始数据时,我遇到了我以前从未见过的数据类型REAL。在调查了一段时间后,我发现它可以通过GCC使用,但不幸的是,它不在XCode(或它的标准C编译器)中


这就是为什么我想知道REAL是否仅在gcc上可用,或者是否有任何方法使其与Xcode或其他编译器兼容。

如果您查看文件开头的预处理器指令,您将看到
REAL
实际上是一个宏,定义为
float
double
。因此,它特定于此文件,而不是gcc。

如果您查看文件开头的预处理器指令,您将看到
REAL
实际上是一个宏,定义为
float
double
。因此,它特定于此文件,而不是gcc。

如果您查看文件开头的预处理器指令,您将看到
REAL
实际上是一个宏,定义为
float
double
。因此,它特定于此文件,而不是gcc。

如果您查看文件开头的预处理器指令,您将看到
REAL
实际上是一个宏,定义为
float
double
。因此,它特定于此文件,而不是gcc。

您提供的源代码的前几行定义了宏
REAL

#ifdef SP
#define REAL float
#define ZERO 0.0
#define ONE 1.0
#define PREC "Single "
#endif

#ifdef DP
#define REAL double
#define ZERO 0.0e0
#define ONE 1.0e0
#define PREC "Double "
#endif
SP
DP
可能是在命令行上定义的,如下所示:

cc -DDP -c linpack.c

如果您
#既不定义
SP
也不定义
DP
,编译器会像在您的例子中一样抱怨。

您提供的源代码的前几行
#定义宏
REAL

#ifdef SP
#define REAL float
#define ZERO 0.0
#define ONE 1.0
#define PREC "Single "
#endif

#ifdef DP
#define REAL double
#define ZERO 0.0e0
#define ONE 1.0e0
#define PREC "Double "
#endif
SP
DP
可能是在命令行上定义的,如下所示:

cc -DDP -c linpack.c

如果您
#既不定义
SP
也不定义
DP
,编译器会像在您的例子中一样抱怨。

您提供的源代码的前几行
#定义宏
REAL

#ifdef SP
#define REAL float
#define ZERO 0.0
#define ONE 1.0
#define PREC "Single "
#endif

#ifdef DP
#define REAL double
#define ZERO 0.0e0
#define ONE 1.0e0
#define PREC "Double "
#endif
SP
DP
可能是在命令行上定义的,如下所示:

cc -DDP -c linpack.c

如果您
#既不定义
SP
也不定义
DP
,编译器会像在您的例子中一样抱怨。

您提供的源代码的前几行
#定义宏
REAL

#ifdef SP
#define REAL float
#define ZERO 0.0
#define ONE 1.0
#define PREC "Single "
#endif

#ifdef DP
#define REAL double
#define ZERO 0.0e0
#define ONE 1.0e0
#define PREC "Double "
#endif
SP
DP
可能是在命令行上定义的,如下所示:

cc -DDP -c linpack.c

如果你
#既不定义
SP
也不定义
DP
,编译器会像在你的例子中那样抱怨。

REAL
在源文件的最顶端被定义为
float
。投票作为无法再现的问题关闭(答案在OP发布的文件中).
REAL
在源文件的最顶端定义为
float
。投票作为无法再现的问题关闭(答案在OP发布的文件中)。
REAL
在源文件的最顶端定义为
float
。投票作为无法再现的问题关闭(答案在OP发布的文件中)。
REAL
在源文件的最顶端被定义为
float
。投票作为无法再现的问题关闭(答案在OP发布的文件中)。谢谢你的回答。似乎我已经监督了这个。我会接受你的回答。谢谢你的回答。似乎我已经监督了这个。我会接受你的回答。谢谢你的回答。似乎我已经监督了这个。我会接受你的回答。谢谢你的回答。似乎我已经监督了这个。我会接受你的答案。奇怪的是,我希望会有一个显式的
#if!(已定义(SP)|已定义(DP))#error
。将其放在代码注释中是愚蠢的。@snetel从它甚至没有使用
typedef
这一事实判断,它是旧代码。我怀疑一些ANSI之前的预处理器没有正确地实现
\if
并且没有提供
\error
。奇怪的是,我希望有一个明确的
\if!(已定义(SP)||defined(DP))#error
。将其放在代码注释中是愚蠢的。@snetel从它甚至不使用
typedef
这一事实判断,它是旧代码。我怀疑一些ANSI之前的预处理器没有正确实现
#if
并且没有提供
#error
。奇怪的是,我希望有一个明确的
#if!(定义(SP)| |定义(DP))#error
。将其放在代码注释中是愚蠢的。@snetel从它甚至没有使用
typedef
这一事实判断,它是旧代码。我怀疑一些ANSI之前的预处理器没有正确地实现
\if
并且没有提供
\error
。奇怪的是,我希望有一个明确的
\if!(已定义(SP)||defined(DP))#error
。将其放在代码注释中是愚蠢的。@snetel从它甚至不使用
typedef
这一事实判断,它通常是旧代码。我怀疑一些ANSI之前的预处理器没有正确实现
#if
,并且没有提供
#error