我想知道以下C代码是否符合C99和/或C11标准:
void foo(int bar0, int bar1, int bar2) {
int *bars = &bar0;
printf("0: %d\n1: %d\n2: %d\n", bars[0], bars[1], bars[2]);
}
int main(int argc, char **argv) {
foo(8, 32, 4);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在使用visual studio 2013并打印时,此代码段按预期编译和运行:
0:8
1:32
2:4
我目前正在C中编写一个包含游戏手柄支持的跨平台库.Windows上的游戏手柄通信由原始输入和xinput处理,具体取决于特定的游戏手柄.
虽然xinput有助于在xbox360控制器上进行力反馈,但我还没有找到使用原始输入执行此操作的方法.我有一些可以提供力反馈的游戏手柄,但我无法通过原始输入找到一种方法.有没有办法做到这一点?
我不喜欢使用directinput api,因为微软已经弃用它并且不鼓励它.
编辑:
由于我已经在很大程度上实现了游戏手柄,也许我可以稍微缩小这个问题.我怀疑通过读取HIDP_CAPS结构的NumberOutputValueCaps可以找到游戏手柄中的隆隆马达数量.这为我的所有测试游戏手柄提供了正确的结果.
我正在使用funtcion HidP_GetUsageValue来读取轴值,这很好.现在我怀疑调用HidP_SetUsageValue应该允许我改变这个输出值,打开隆隆电机.但是,调用此函数失败.该功能是否能够接入隆隆电机?