C++
C++学习笔记
dreamingcoder
这个作者很懒,什么都没留下…
展开
-
关于变量类型、内存方式
复习C++时看到这个:然后在vscode中试验:可见char默认是unsigned char。问题signed char chh = -1;printf("%d", chh); // 输出 -1unsigned char chh = -1;printf("%d", chh); // 输出 255 为什么解决如何按内存字节输出值:利用char*指针char* ptr =(char*)&var;for(int i=0;i<sizeof(var);i++){原创 2022-02-12 15:43:56 · 281 阅读 · 0 评论 -
对于整数的输入异常处理
查了很多,没有一个完美方案,于是自己写了一个。不仅能够处理所有错误输入情况(应该没有其它错误情况了吧),还能继续输入直到成功的方案:void getInput(int* num) { std::string str; std::getline(std::cin, str); try { if (str.find('.') != str.npos) throw 1; // 处理小数的输出 for (int i = 0; i < str.size(); i++) { // 处理含有非数字输原创 2021-05-25 20:42:17 · 450 阅读 · 0 评论 -
C++取消函数名修饰
由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。函数名称需保证唯一性,否则无法正确链接,编译时进行函数名修饰,产生唯一的函数名称,适用于C++中的所有函数,包括非重载函数。来指示编译器这部分代码按C语言的进行编译,而不是C++的。为了能够在C++代码中调用C语言代码,就要用到。使用举例:vs √, vscode ×。原创 2021-04-18 16:51:39 · 282 阅读 · 0 评论