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