Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';closeapp';未在此范围中声明_C_Arduino - Fatal编程技术网

';closeapp';未在此范围中声明

';closeapp';未在此范围中声明,c,arduino,C,Arduino,你好,我更改了usbdriveby项目。 只是为了好玩而玩键盘 错误消息app:“closeapp”未在此作用域中声明。 代码如下: #if defined(CORE_TEENSY) #define LED_PIN 11 #else #define LED_PIN 13 #endif void setup() { delay(800); openapp("Terminal"); typeln("screen -S SYSTEMUpdater"); typeln("say dont

你好,我更改了usbdriveby项目。 只是为了好玩而玩键盘 错误消息app:“closeapp”未在此作用域中声明。 代码如下:

#if defined(CORE_TEENSY)
#define LED_PIN 11
#else
#define LED_PIN 13
#endif
void setup() {
delay(800);

  openapp("Terminal");
  typeln("screen -S SYSTEMUpdater");
  typeln("say dont use unknown usb sticks because its not safe.");
  closeapp;
}
void openapp(String app)
{
  cmd(KEY_SPACE);
  typeln(app);
}
void typeln(String chars)
{
  Keyboard.print(chars);
  delay(ds);
  Keyboard.println("");
  delay(ds * 4);
}
void closeapp
{
  cmd(KEY_Q);
}
void k(int key)
{
  Keyboard.set_key1(key);
  Keyboard.send_now();
  delay(ds/2);

  Keyboard.set_key1(0);
  Keyboard.send_now();
  delay(ds/2);
}

void mod(int mod, int key)
{
  Keyboard.set_modifier(mod);
  Keyboard.send_now();
  Keyboard.set_key1(key);
  Keyboard.send_now();
  delay(ds);

  Keyboard.set_modifier(0);
  Keyboard.set_key1(0);
  Keyboard.send_now();
  delay(ds);
}

void ctrl(int key)
{
  mod(MODIFIERKEY_CTRL, key);
}

void cmd(int key)
{
  mod(MODIFIERKEY_GUI, key);
}

void shift(int key)
{
  mod(MODIFIERKEY_SHIFT, key);
}

void loop()
{
  digitalWrite(LED_PIN, HIGH);
  delay(ds/2);
  digitalWrite(LED_PIN, LOW);
  delay(ds/2);
}

我搜索了相同的错误,但我很确定我在编写时出错。

函数
closeapp
在C语言中语法无效。 应该是这样的:

void closeapp()
{
  cmd(KEY_Q);
}
closeapp();
此外,函数调用应该类似于:

void closeapp()
{
  cmd(KEY_Q);
}
closeapp();
语法上有效

最后一点是,您不应该在函数实现之前调用它。这意味着您要么提供原型,要么在真正调用它之前给出它的定义


编辑FYI:Statement
closeapp
在语法上是有效的,但它是空指令,就像
42。从字面上看,它是
closeapp
函数的地址,因此基本上只是一个数字。

void closeapp{
-->
void closeapp(void){
closeapp;
-->
closeapp();
VTC作为次要项。即使如此,编译器也可能会抱怨没有可见的
closeapp()声明
setup()调用时
。您的预编辑版本更好。编写
closeapp;
的结果在语法上有效,但在语义上无效,也就是说,它显然不是OP想要的。它映射到函数地址的无OP求值。此外,就我关于可见声明的观点而言,情况更糟:编译器可能出错,或者可能只是警告(如果你有警告,我们都有,对吗?)它将使用一个不同的、假定的签名-如果它不匹配,这将导致未定义的行为…很可能会这样。是的,我当时正在编辑。好吧,我还假设编译器默认删除并优化closeapp;语句,正如您所说,它是noop。确切地说:我的意思是它不是语法有效的函数call、 但它确实是语法上有效的语句。