・飯
みたいな感じのメニューを自動生成してくれる自作関数を作ってみたいと思ってますがエラーが出てしまってお手上げ状態です。。。
もともとwin10で使っていたものをlinuxに持って来て動くように直したつもりだったんですどエラーが出てしまった。。。
エラー内容
menu.c: 関数 ‘main’ 内:
menu.c:6:3: 警告: passing argument 4 番目の ‘menu’ の引数を渡すときにポインタからキャスト無しに整数を作成しています [デフォルトで有効]
x=menu(2,2,2,mainmenu);
^
In file included from menu.c:1:0:
game_hedder.h:7:5: 備考: expected ‘char’ but argument is of type ‘char (*)[255]’
int menu(int,int,int,char);
^
menu.c: トップレベル:
menu.c:10:5: エラー: ‘menu’ と型が競合しています
int menu(int x, int y, int koumoku, char menu[][255]){
^
In file included from menu.c:1:0:
game_hedder.h:7:5: 備考: 前の ‘menu’ の宣言はここです
int menu(int,int,int,char);
^
本体
#include"game_hedder.h"
main(){
char mainmenu[2][255]={"oyatu","mesi"};
int x;
x=menu(2,2,2,mainmenu);
printf("%d\n,x);
}
int menu(int x, int y, int koumoku, char menu[][255]){
initscr();
//select 選択中の番号 0〜
//menu_number 項目番号 0〜
int select=0, menu_number;
while(1){
for(menu_number=0;menu_number<koumoku;menu_number++){
move(x,y+menu_number);
if(select==menu_number) printw("->");
else printw("・");
printw(menu[menu_number]);
}
switch(getch()){
case 'w':
if(select!=0) select--;
break;
case 's':
if(select!=koumoku-1) select++;
break;
case 'g':
return select;
default:
break;
}
}
endwin();
}