extern u8 RX4_polling();与不加extern 的区别???
时间: 2024-06-14 18:09:25 浏览: 7
extern u8 RX4_polling(); 是函数声明,它告诉编译器该函数的定义在其他文件中。这样在当前文件中使用该函数时,编译器会知道该函数的存在,并且可以正确地进行类型检查和链接。
不加extern 的情况下,默认为函数的定义。也就是说,编译器会在当前文件中寻找该函数的定义。如果找不到定义,编译器会报错。
总结来说,extern u8 RX4_polling(); 是函数声明,告诉编译器该函数的定义在其他文件中;而不加extern 的情况下,默认为函数的定义,编译器会在当前文件中寻找该函数的定义。
相关问题
头文件的函数声明为啥可以不加extern?
在 C 语言中,函数声明默认是 extern 类型的,因此在头文件中声明函数时,可以不加 extern 关键字。这是因为 C 语言中默认函数是外部函数,即可以被其他文件调用。在编译时,编译器会自动在函数名前加上 extern 关键字,告诉编译器该函数是一个外部函数,可以在其他文件中使用。因此,头文件中的函数声明可以不加 extern 关键字,编译器会自动添加。但在 C++ 中,函数默认是内部函数,需要使用 extern 关键字显式地声明为外部函数。
extern u8 set_flag; u8 people_ok
这段代码定义了两个变量,分别为 set_flag 和 people_ok。其中 set_flag 是一个 u8 类型的变量,可能是用来标志某个设置是否已经完成的标志位;people_ok 则是一个 u8 类型的变量,可能是用来标志人员是否已经确认的标志位。由于没有上下文,无法确定这两个变量的具体用途。