extern int用法
时间: 2023-12-28 19:05:13 浏览: 24
`extern` 是一个 C 语言的关键字,用于声明一个变量或函数是在其他文件中定义的。它的作用是告诉编译器这个变量或函数的定义在其他文件中,而不是在当前文件中。
当我们在一个文件中使用另一个文件中定义的变量或函数时,编译器需要知道这个变量或函数的类型和名称。如果没有 `extern` 关键字,编译器会认为这个变量或函数是当前文件中定义的,而不是其他文件中定义的,编译器在编译时就会报错。
例如,我们在一个 C 语言程序中使用了一个在另一个文件中定义的全局变量 `count`,需要在当前文件中声明该变量,以便编译器知道该变量的类型和名称。可以使用 `extern` 关键字来声明:
```c
extern int count;
```
这样编译器就会知道该变量是在其他文件中定义的,并且可以正确地编译程序。需要注意的是,`extern` 只是告诉编译器该变量或函数的定义在其他文件中,不会分配内存空间,所以该变量或函数必须在其他文件中定义才能正常使用。
相关问题
extern int
extern int是一个变量或函数的声明,表示该变量或函数是在其他文件中定义的。它告诉编译器在当前文件中使用这个变量或函数时,不需要在当前文件中定义它,而是在链接时从其他文件中找到它的定义。\[2\]\[3\]这种方式比包含头文件来引用函数更加简洁,可以加速程序的编译过程,节省时间。\[3\]
#### 引用[.reference_title]
- *1* *3* [C语言中extern的用法](https://blog.csdn.net/qq_39852676/article/details/124132395)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【014 关键字】一文彻底搞懂extern用法](https://blog.csdn.net/qq_41709234/article/details/122984203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
extern int yylineno; extern char* yytext; extern int yylex();
这三个变量和函数都是Flex自动生成的,用于在词法分析器中进行操作。它们的含义如下:
1. `yylineno`:表示当前扫描到的行号。
2. `yytext`:表示当前扫描到的字符串。
3. `yylex()`:是Flex自动生成的词法分析器函数,用于从输入流中读取一个单词并返回该单词的种类码(token code)。
在使用Flex生成的词法分析器中,这些变量和函数可以用来实现一些功能,比如记录行号、获取当前扫描到的字符串等等。当然,这些变量和函数的具体用法还要根据具体的需求来进行调整。