c++file用法_function c++

c++file用法_function c++__FILF__宏__FILE__宏用于检查当前文件名#includecstdiousingnamespacestd;intmain(){printf(“%s\n”,__FILE__);return0;}__FUN

__FILF__

__FILE__宏用于检查当前文件名

#include <cstdio>
using namespace std;

int main() { 
   
    printf("%s\n", __FILE__);
    return 0;
}

在这里插入图片描述

__FUNCTION__宏、 __func__

__FUNCTION__宏输出当前函数名

#include <cstdio>
using namespace std;

void foo() { 
   
    printf("%s\n", __FUNCTION__); // 输出foo
}

void bar() { 
   
    printf("%s\n", __FUNCTION__); // 输出bar
}

int main() { 
   
    foo();
    bar();
    printf("%s\n", __FUNCTION__); // 输出main
    return 0;
}

在这里插入图片描述
C++11中允许它们用在类或者结构体中:

#include <iostream>
struct TestStruct{ 
   
    TestStruct() : name(__FUNCTION__ ) { 
   }
    const char *name;
};


int main() { 
   
    TestStruct ts;
    printf("%s\n", ts.name);
    return 0;
}

在这里插入图片描述
但是不允许作为函数参数的默认值:

#include <string>
#include <iostream>

void FuncFail(const std::string& func_name = __func__){ 
   
    printf("%s", func_name.c_str()); // 实际上什么也不会打印
};

在这里插入图片描述
这是由于在参数声明时,__func__还没有定义。

__FUNCTION____func__功能一样

__LINE__

输出当前代码是该文件中的第几行

#include <cstdio>
using namespace std;

void foo() { 
   
    printf("%d\n", __LINE__); // 输出5
}

void bar() { 
   
    printf("%d\n", __LINE__); // 输出9
}

int main() { 
   
    foo();
    bar();
    printf("%d\n", __LINE__); // 输出15
    return 0;
}   

总结

联合这三个宏,我们输出调试信息时就可以快速定位错误发生的位置啦。

printf("%s:%d[%s] Error: xxxx\n", __FILE__, __LINE__, __FUNCTION__);

今天的文章c++file用法_function c++分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/86175.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注