随笔分类 -  c/c++

摘要:scanf("%d%c",&a,&b); 输入时,必须两数相连,没有空格。否则b=' '或b='\n',造成bug。 改成下面就可以。 scanf("%d %c",&a,&b); 阅读全文
posted @ 2023-09-21 17:51 安然春夏 阅读(16) 评论(0) 推荐(0)
摘要:for循环,不满足要求的语句根本不执行。和do{}while()至少执行一次不同。 第一次注意for循环这个特性。 阅读全文
posted @ 2023-08-24 10:12 安然春夏 阅读(244) 评论(0) 推荐(0)
摘要:配置文件 ~/.vscode ~/.config/Code 删除以上文件夹,相当于重新安装vscode 打开终端,View/Terminal, Ctrl+` 恢复初始窗口设置,删除 ~/.config/Code/User/settings.json 阅读全文
posted @ 2023-08-07 10:25 安然春夏 阅读(19) 评论(0) 推荐(0)
摘要:既然sizeof是运算符,不是函数,那么它的机制到底是什么?C语言规范或编译器应该有所体现。 gcc-0.9,其他版本的有需要再看, 暂时不能handle cmake, 以后再看CLANG/LLVM。 搞清楚编译器,就可以相信编译器。 未经本人同意,禁止转载。 阅读全文
posted @ 2023-07-24 12:04 安然春夏 阅读(27) 评论(0) 推荐(0)
摘要:使用32个元素的数组代表unsigned int型数字(32 bit)的加法。 1 #include <stdbool.h> 2 #include <stdio.h> 3 4 unsigned int num1[32]; 5 unsigned int num2[32]; 6 unsigned int 阅读全文
posted @ 2023-07-20 21:33 安然春夏 阅读(114) 评论(0) 推荐(0)
摘要:【GDB调试教程:1小时玩转Linux gdb命令 sudo dnf debuginfo-install glibc-2.32-2.fc33.x86_64 编译时, gcc -g test.c -o test,因为在调试二进制文件的时候,我们需要在二进制文件中加入调试信息,而调试信息是怎么添加的呢? 阅读全文
posted @ 2023-07-14 22:38 安然春夏 阅读(54) 评论(0) 推荐(0)
摘要:主内存中内存单元(比特)有唯一编号,可寻址。c语言中变量可占用连续几个比特,那么有几种办法定位变量占用的地址? 变量名,引用,指针都是地址的别名 int num = 5; 1, 直接变量名的地址,一阶指针 int *r1 = &num; *r1是num的内容,r1内指向num的地址。 2, 取地址+ 阅读全文
posted @ 2023-07-14 18:15 安然春夏 阅读(58) 评论(0) 推荐(0)
摘要:#include<typeinfo> int main(){ int i=5; int &ir=i; std::cout<<typeid(ir).name()<<std::endl; // output: i return 0; } 阅读全文
posted @ 2023-07-14 15:29 安然春夏 阅读(15) 评论(0) 推荐(0)
摘要:g++也可以编译c语言函数, 1 // filename: extern_c.cc 2 3 #include <iostream> 4 5 #ifdef __cplusplus 6 extern "C" { 7 #endif 8 //c语言语句开始 9 #include <stdio.h> 10 1 阅读全文
posted @ 2023-07-14 14:15 安然春夏 阅读(18) 评论(0) 推荐(0)
摘要:cpplint可用于检查代码是否遵守google c++代码规范。我的理解是检查你使用的是不是正确的C++。 安装: python3 -m pip install cpplint 与之对应,代码需要格式化为满足google c++规范的格式,比如使用 clang-format --style=goo 阅读全文
posted @ 2023-07-10 20:58 安然春夏 阅读(1100) 评论(0) 推荐(0)
摘要:1. gdb [GDB调试教程:1小时玩转Linux gdb命令] sudo dnf debuginfo-install glibc-2.32-2.fc33.x86_64 编译时, gcc -g test.c -o test,因为在调试二进制文件的时候,我们需要在二进制文件中加入调试信息,而调试信息 阅读全文
posted @ 2023-06-11 20:22 安然春夏 阅读(87) 评论(0) 推荐(0)
摘要:完整复制字符串的一个简单程序 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 char *strcpy(char *dst, const char *src) { 6 char *s = dst; 7 8 wh 阅读全文
posted @ 2023-05-13 21:20 安然春夏 阅读(18) 评论(0) 推荐(0)
摘要:空的结构体,在c中sizeof获取的值是0 (gcc/clang), c++中则是1 (clang++). 《C语言深度解剖》 enum 型变量在编译器会被替换为具体的值,所以sizeof只返回单个变量的值。//不存在遍历enum的循环 编译器在结构体中填充空白是为了随机访问,尽可能提高访问效率。将 阅读全文
posted @ 2023-03-25 21:13 安然春夏 阅读(43) 评论(0) 推荐(0)
摘要:在同一台机器上,结构体的在内存中分配每个成员变量的偏移地址固定的。 struct fox { unsigned long tail_length; unsigned long weight; _Bool is_fantastic; int length; }; struct fox *a_fox=( 阅读全文
posted @ 2023-03-23 22:17 安然春夏 阅读(75) 评论(0) 推荐(0)
摘要:gcc 10+ 编译 git第一个提交(本文会持续修改)安装gcc 10+在编译的时候有时会出现multiple-definition的错误。(会从源码编译gcc的可以路过)。 实在想不出解决重定义的办法。但有一种凑活的办法: cache.h 中添加#include <string.h> 将read-cache.c中的内容,除去四个定义和最上面的头文件, 阅读全文
posted @ 2023-03-11 14:16 安然春夏 阅读(30) 评论(0) 推荐(0)
摘要:当使用clang++14并且打来-fsanitize时,编译出错, 1 $ clang++ -O1 -g -fsanitize=address -fno-omit-frame-pointer infile.cc 2 /bin/ld: cannot find /usr/lib64/clang/14.0 阅读全文
posted @ 2022-12-16 08:44 安然春夏 阅读(1318) 评论(0) 推荐(0)
摘要:工作学习在Fedora上一段时间,发现很多有用的工具,几乎可以完成所有需要的任务。工作原因需要学习数值计算,需要认真学习c++,可是容易内存泄漏之类,需要熟练掌握debug工具, 其中gun gdb是很流行的debug工具。GDB supports the following languages ( 阅读全文
posted @ 2022-03-09 09:59 安然春夏 阅读(206) 评论(0) 推荐(0)