如何从 C++ 调用复杂参数的 C 函数
How to call a C function of a complex argument from C++
我想调用复杂参数的 C 函数,声明为
double _Complex cerf ( double _Complex z );
来自 C++。以下作品:
#include<complex.h>
double _Complex z = 1.0;
cerf( z );
但是,我无法为 z 分配虚部:
double _Complex z = 1.0 + _Complex_I * 2.0;
不在 g++ 下编译:"unable to find numeric literal operator ‘operator""iF’"
。我尝试的其他表达式会导致其他类似的神秘错误消息。
C++ 和 C 并不完全兼容,尤其是 C99 的特性,这些特性在 C++ 中可能存在也可能不存在,复数就是其中之一。 C++ and C compatibility
如果您使用的是 GCC,则可以使用标志 -fext-numeric-literals
启用对 _Complex
的支持。
我想调用复杂参数的 C 函数,声明为
double _Complex cerf ( double _Complex z );
来自 C++。以下作品:
#include<complex.h>
double _Complex z = 1.0;
cerf( z );
但是,我无法为 z 分配虚部:
double _Complex z = 1.0 + _Complex_I * 2.0;
不在 g++ 下编译:"unable to find numeric literal operator ‘operator""iF’"
。我尝试的其他表达式会导致其他类似的神秘错误消息。
C++ 和 C 并不完全兼容,尤其是 C99 的特性,这些特性在 C++ 中可能存在也可能不存在,复数就是其中之一。 C++ and C compatibility
如果您使用的是 GCC,则可以使用标志 -fext-numeric-literals
启用对 _Complex
的支持。