提问者:小点点

如何在for循环中创建一个char数组和2个空洞18次,每个空洞都有不同的名称(数字)?


这就是代码现在的样子(或者至少是重要的部分。)

这些是我编译时遇到的(相关)错误。(希望我能把它放在扰流板标签中)

g15_plugin_uinputc:在函数'g15_process_keys':g15_plugin_uinputc:189:3:错误:'g_key'未声明(首次使用此函数)

g_key1=GKEY_OFFSET1;^g15_plugin_uinput. c:189:3:注意:每个未声明的标识符对于出现在g15_plugin_uinput.c:196:24中的每个函数只报告一次:

警告:逗号表达式的左侧操作数没有影响[-Wunused-value]g_key[7]=KEY_LEFTMETA,KEY_F1;

……(重复)

……(重复结束后)

g15_plugin_uinput. c:208:25:警告:逗号表达式的左侧操作数没有效果[-Wunused-value]g_key[18]=KEY_LEFTCTRL,KEY_PAGEDOWN;

g15_plugin_uinput. c:208:3:警告:没有影响的语句[-Wunused-value]g_key[18]=KEY_LEFTCTRL,KEY_PAGEDOWN;

g15_plugin_uinput. c:292:16:error:未知类型名称key_seqvoidg_key_dn(key_seq序列)

g15_plugin_uinput. c:298:16:错误:未知类型名称key_seqvoidg_key_up(key_seq序列)

g15_plugin_uinput. c:306:13:警告:函数的隐式声明'g_key_dn'[-Wimplact-Function-声明]{g_key_dn(序列1);}

g15_plugin_uinput. c:306:23:error:'序列'未声明(首次在此函数中使用){g_key_dn(序列1);}

g15_plugin_uinput. c:308:13:警告:函数的隐式声明'g_key_up'[-Wimplact-Function-声明]{g_key_up(序列1);}

这是我想要的结果,例如键nr 15 ifmkey_state=0。(这里的if定义了物理按键,括号中的内容定义了它实际的作用,我试图自动化一点,你可以说。你可以在代码中看到更低的mkey_state变化)

    if((currentkeys & G15_KEY_G15) && !(lastkeys & G15_KEY_G15))
        {keydown(KEY_LEFTMETA);keydown(KEY_PAGEUP);}
    else if(!(currentkeys & G15_KEY_G15) && (lastkeys & G15_KEY_G15))
        {keyup(KEY_LEFTMETA);keydown(KEY_PAGEUP);}

在同样的情况下,但我希望键1而不是15

    if((currentkeys & G15_KEY_G1) && !(lastkeys & G15_KEY_G1))
        {keydown(GKEY_OFFSET+1);}
    else if(!(currentkeys & G15_KEY_G1) && (lastkeys & G15_KEY_G1))
        {keyup(GKEY_OFFSET+1);}

我做错了什么,如何让这段代码更好地工作?

这是代码的一个更完整的版本(怀疑它是否有帮助,它与问题无关,但可能会为您提供上下文)

我已经设法使我想要的代码,但我试图简化和缩短它的易读性的缘故,而且在这种情况下,我想使一个外部配置文件稍后(所以我不必重新编译每次我想改变绑定G额外的键。)


共1个答案

匿名用户

在赋值给之前,您还没有声明g_key1的类型或代码中的任何内容g_key1。如果您的g_keys,您需要在赋值给它们之前定义类型。

为了使您的代码正常工作,您最有可能需要编写:

int g_key1 = GKEY_OFFSET+1;