Compile error: /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.c: In function 'play': /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.c:31:11: error: declaration of 'prr' as array of functions void(*prr)[4](int , int*, int*) = { up,down,left,right}; ^~~
时间: 2023-07-17 12:12:00 浏览: 219
这个编译错误是因为函数指针数组的声明语法有误。正确的声明语法应该是:
```c
void(*prr[4])(int, int*, int*) = { up, down, left, right };
```
注意,`[4]` 应该放在 `prr` 的后面,表示 `prr` 是一个由 4 个函数指针组成的数组。请将声明语句修改为上述形式,然后重新编译你的代码,应该就能够解决这个错误了。
相关问题
Compile error: In file included from /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/Main.c:1: /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.h:19:5: error: expected identifier before 'int' int up =2; ^~~ In file included from /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.c:1: /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.h:19:5: error: expected identifier before 'int' int up =2; ^~~ /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.h:19:5: error: expected identifier before 'int' int up =2; ^~~ In file included from /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/menu.c:1: /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.h:19:5: error: expected identifier before 'int' int up =2; ^~~ In file included from /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/move.c:1: /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/game.h:19:5: error: expected identifier before 'int' int up =2; ^~~
这个错误是由于在game.h头文件中,int变量的声明位置不正确导致的。在C语言中,变量的声明应该在函数内部或者全局范围,而不是在头文件中。请将game.h头文件中的int变量声明移动到函数内部或者全局范围即可解决这个编译错误。以下是修复后的示例代码:
```c
// game.h
#ifndef GAME_H
#define GAME_H
extern int up; // 在头文件中声明全局变量,用extern关键字
#endif
// game.c
#include "game.h"
int up = 2; // 在.c文件中定义全局变量
// 其他文件
#include "game.h"
// 使用全局变量up
```
请根据你的实际需求将代码中的int变量声明放置在合适的位置。
Compile error: /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/Main.c: In function 'menu': /storage/emulated/0/Android/data/com.cjkj.clanide/files/CJ_IDE/CProject/我的/src/Main.c:5:21: error: invalid initializer char arr1[][9] = "***************************** **********************"; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个错误是由于在声明字符数组 `arr1` 时使用了错误的初始化方式导致的。在C语言中,通过字符串赋值给字符数组时,需要使用大括号 `{}` 来包围字符串内容,而不是使用双引号 `""`。正确的方式是将字符串拆分为多个字符,然后使用大括号进行初始化,例如:
```c
char arr1[][9] = {
"*****************************",
"**********************"
};
```
这样就能正确地初始化字符数组 `arr1`。请注意,根据你的需求,你可能需要调整每个字符串的长度和数组的维度。
阅读全文