extern int shmid;
时间: 2023-12-04 22:02:19 浏览: 67
这段代码中的 `extern int shmid` 是一个声明,它告诉编译器,变量 `shmid` 是在其他文件中定义的全局变量,这里只是对它进行了声明。这样在编译时,编译器就不会报错说找不到 `shmid` 的定义了。通常在多个源文件中使用同一个全局变量时,需要在其中一个文件中进行定义,然后在其他文件中使用 `extern` 进行声明即可。
相关问题
解释下面这段代码#ifndef _CLI_H_ #define _CLI_H_ extern int cli_show_open(); extern int cli_show_open_2(); extern int cli_show_open_3(); //open 1 2 3 功能参考ZYYcli.c ZYY注 extern int cli_query_Volume(); extern int cli_query_Brilliance_control(); extern int cli_query_Daily(); extern int cli_query_Web(); extern int cli_query_Timing(); #endif
这段代码是一个头文件,以宏定义的方式防止多次包含。它声明了一些函数的外部接口,这些函数用于在命令行界面(CLI)中显示或查询不同的配置项。其中,cli_show_open()、cli_show_open_2() 和 cli_show_open_3() 函数用于显示不同的 "open" 功能,这些功能参考了 ZYYcli.c 文件中的实现。cli_query_Volume()、cli_query_Brilliance_control()、cli_query_Daily()、cli_query_Web() 和 cli_query_Timing() 函数则分别用于查询音量、亮度、每日任务、网络设置和定时设置的值。这些函数的具体实现应该定义在其他的源代码文件中,而这个头文件只是提供了这些函数的声明,以便其他的源代码文件可以使用它们。
extern int left; extern int right,jiansu;
这段代码中的 `extern` 关键字用于声明变量,表示该变量在其他文件中定义。具体来说,`extern int left;` 和 `extern int right, jiansu;` 声明了三个整型变量 `left`、`right` 和 `jiansu`。
这样的声明可以让编译器知道这些变量在其他文件中已经定义,从而在当前文件中可以使用这些变量而不会报错。但是需要注意的是,在当前文件中使用这些变量时,需要确保这些变量在其他文件中的定义是可见的。
通常,当你在一个文件中使用了 `extern` 声明变量时,你需要确保在其他文件中有对应的定义。例如,你可以在其他文件中定义这些变量,如下所示:
```c
// 在其他文件中定义 left、right 和 jiansu
int left;
int right;
int jiansu;
```
这样,在你的当前文件中,就可以使用这些变量了。注意,这些声明和定义要保持一致,包括类型和变量名。
`extern` 关键字的作用是告诉编译器这些变量已经在其他地方定义了,它们的实际定义和内存分配是在其他文件中完成的。这样可以实现跨文件共享变量的功能。
阅读全文