C++ 为什么我的编译器拒绝编译这个程序?
看来这个错误毫无意义。。。无法将ByteEndelin转换为指针是什么意思?我不明白 PS:请原谅格式错误;我用typedefs做实验。一个问题是:C++ 为什么我的编译器拒绝编译这个程序?,c++,C++,看来这个错误毫无意义。。。无法将ByteEndelin转换为指针是什么意思?我不明白 PS:请原谅格式错误;我用typedefs做实验。一个问题是: 1 2 3 4 Line 10: error: missing whitespace after the macro name In function 'snow main(snow, byteUendedLin***)': Line 13: error: cannot convert 'byteUendedLin**' to 'byteUen
1
2
3
4
Line 10: error: missing whitespace after the macro name
In function 'snow main(snow, byteUendedLin***)':
Line 13: error: cannot convert 'byteUendedLin**' to 'byteUendedLin*'
for argument '2' to 'shells drawsnake(snow, byteUendedLin*, ANDNOOP&)'
compilation terminated due to -Wfatal-errors.
这定义了一个值为-EXTER
的宏NO
。编译器希望宏名称和定义之间有一个空格
要么写:
#define NO-EXTER
或:
另一个问题是您对main()
的定义:
转换typedefs时,这相当于:
snow main(snow args, byteUendedLin**LOC[])
但该标准要求:
int main(int argc, char **argv[])
或
或者使用typedef和变量名:
int main(int argc, char *argv[])
和noexpfortopoflist
是指针数组,它会衰减为指向指针的指针,因为您将其作为参数传递。看
您无法将T**
转换为T*
,因为T**
不能转换为T*
。它们是两种完全不同且不相关的数据类型。不过,您可以使用一元*
运算符取消对T**
的引用以获得T*
有关指针的介绍,请参见
另外,您的程序还表现出未定义的行为,因为标识符
Height\uu Maskm\uu
是为实现保留的。程序似乎也没有意义。。。请正确格式化:)这似乎是问题所在:而且,在将来,您可能应该指定正在使用的操作系统和编译器。C++实现中有很多变化。很多错误(除了别人所说的以外):“ANDONOP和FILESZH9ER”之后删除“”;“HealthMaskMy”之后,与您声明的名称不一样。“drawsnake”的原型不匹配。请更具体地说明您不理解错误消息的哪一部分。他们很清楚问题是什么。
snow main(snow args, byteUendedLin**LOC[])
int main(int argc, char **argv[])
int main(int argc, char **argv)
int main(int argc, char *argv[])
snow main(snow args, byteUendedLin **LOC)