typedef struct
{
size_t sz;
size_t nele;
float complex *arr;
} VarCFloatComplexArray;
一段C语言,在matlab用MEX编译时出错,末尾两行
(26): error C2143: 语法错误: 缺
少“;”(在“*”的前面)
(26): error C2059: 语法错误:“*”
(27): error C2059: 语法错误:“}”
在float complex和*arr之间加一个逗号。也就是:
float complex, *arr;
#include <complex.h>之后,想要声明一个double 复数类的数值的话,需要使用
double _Complex a;进行声明
而不是:
double complex a;
有一个疑问,float complex,*arr 这么写是两个变量吗?如果本来的含义是复值float呢(前面有个#include <complex.h>)
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
更新:我用的编译器是 'Microsoft Visual C++ 2017 (C)'
visual studio2017的complex.h文件节选如下:
#ifndef _C_COMPLEX_T
#define _C_COMPLEX_T
typedef struct _C_double_complex
{
double _Val[2];
} _C_double_complex;
typedef struct _C_float_complex
{
float _Val[2];
} _C_float_complex;
typedef struct _C_ldouble_complex
{
long double _Val[2];
} _C_ldouble_complex;
#endif
把问题中的float complex改为_C_float_complex可不报错了
不知道你这个问题是否已经解决, 如果还没有解决的话: