__FUNCTION__在main以及其他函数外部时,其值为?
时间: 2023-07-21 17:28:43 浏览: 47
`__FUNCTION__` 在 `main` 函数外部以及其他函数外部时,表示当前所在的文件名,类型为 const char[]。例如:
```c
#include <stdio.h>
void func() {
printf("%s\n", __FUNCTION__);
}
int main() {
printf("%s\n", __FUNCTION__);
func();
return 0;
}
// 输出:
// main
// func
```
在上面的代码中,`__FUNCTION__` 在 `main` 函数外部时表示当前所在的文件名,即为 `__main__`。在 `main` 函数内部使用时才表示函数名。在 `func` 函数内部使用时同样表示函数名。
相关问题
__FUNCTION__在函数外部时其值为?
`__FUNCTION__` 在函数外部时表示当前所在的文件名,类型为 const char[],即使在全局范围内也是如此。例如:
```c
#include <stdio.h>
void func() {
printf("%s\n", __FUNCTION__);
}
int main() {
printf("%s\n", __FUNCTION__);
func();
return 0;
}
// 输出:
// main
// func
```
在上面的代码中,`__FUNCTION__` 在 `main` 函数外部时表示当前所在的文件名,即为 `main`。在 `func` 函数内部使用时才表示函数名。
__func__和__FUNCTION__有区别吗
`__func__` 和 `__FUNCTION__` 表示的都是当前函数的名称,但是它们的用法和作用域有所不同。
`__func__` 是 C99 标准中新增加的一个预定义宏,它表示当前函数的名称,类型为 const char[],只能在函数内部使用。例如:
```c
void func() {
printf("%s\n", __func__);
}
```
`__FUNCTION__` 是 GCC 特有的预定义宏,它也表示当前函数的名称,类型为 const char[],可以在函数内部和外部使用。例如:
```c
void func() {
printf("%s\n", __FUNCTION__);
}
int main() {
printf("%s\n", __FUNCTION__);
func();
return 0;
}
```
需要注意的是,`__func__` 只能在 C99 及以上版本的编译器中使用,而 `__FUNCTION__` 可以在 GCC 编译器中使用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)