C/C++
C语言、C++相关知识
一只积极向上的小咸鱼
努力提高技术的搬砖工,欢迎访问本人blog:jianggy.chat
展开
-
C++中不能用doule0作为Bool判断条件
一般float型只能精确到小数到后六位即1e-6,将float型的数a的绝对值abs(a)与1e-6比较,如果abs(a)比1e-6还要小的话就可以认为a的值为零,因为小数六位以后是不精确的,是没有意义的。float是32位,double是64位。float32位中,有1位符号位,8位指数位,23位尾数位。double64位中,1位符号位,11位指数位,52位尾数位。要判断一个双精度浮点数:则是if( abs(f)转载 2023-02-23 15:54:52 · 178 阅读 · 0 评论 -
C++程序报错error: cannot convert ‘std::__cxx11::string {aka std::__cxx11::basic_string
使用stat(path.c_str())等string::c_str()方法将C++字符串转换为C字符串。该错误是需要将C++字符串转换为C字符串。有关详细信息,请参阅。原创 2023-01-13 22:12:18 · 3552 阅读 · 0 评论 -
常用的代码命名方法
驼峰更加紧凑,可读性这点因人而异(有人对大写不敏感的).搜索的时候记得不区分大小写,打字速度会变慢(毕竟都是不同的大写字母切shift也算挺麻烦的了),缩写需要统一规定(有人全大写,有人仅首字母)下划线会增加尺寸,长命名会导致需要换行(可能导致可读性下降);但字母之间分割明显,可读性略好(_看起来和空格其实差不多,所以和平时读文章一样)下划线增加了变量名字的长度。尤其我们追求变量名要有意义,通常需要几个单词拼成,下划线会让变量名更长。下划线在键盘上比较难打,而大写字母好打很多。所以写代码的效率会降一截。原创 2023-01-13 10:34:58 · 1849 阅读 · 0 评论 -
C++谷歌命名规范
1.文件命名规则文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc ,my_use_full_class.cc定义类的文件名一般是成对出现,如:foo_bar.h foo_bar.cc若是类中含大量内联函数,我们还可使用-ini.h文件,使之文件内容更加清晰,于是又如:url_table.h url_table.cc url-table-ini.h2.类命名规则类型命名每个单词首字母大写,不含下划线转载 2021-03-29 16:38:25 · 3723 阅读 · 0 评论 -
代码中 #ifdef注释方法的使用
常量为真(非0),就编译程序段1,否则编译程序段2。注意这里是编译阶段,所以使用0,1这样的常量更合适,使用。上面方法就实现了对程序段的注释屏蔽,解除屏蔽只需要将#if 0改为# if 1即可.。注释更方便,可不受代码段中的局限.在字符串全局匹配时难免会用到匹配字符.。定义,则编译程序段1,否则编译程序段2,同样。定义,则编译程序段1,否则编译程序段2.。非必须,可不存在程序段2.非必须,可不存在程序段2.的结合可以用来注释代码,比。转载 2022-12-01 17:22:33 · 1092 阅读 · 0 评论 -
C++/C中默认初始值
GCC编译器下各类型全局变量初始值。原创 2022-08-08 16:36:59 · 969 阅读 · 0 评论 -
不同字符串输入之间的区别
表面上看这段程序是没有错的,也可以运行,但运行过程中到第二个scanf输入值给ch2时,程序不会停止,而是直接运行到最后一个printf!这是因为scanf是从标准输入缓冲区中读取输入的数据,而**%c的字符输入格式会接收回车字符**,在输入第一个scanf时输入字符后按回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了ch2。而如果第二个scanf的输入格式不是%c时,由于格式不匹配,这个回车符会被自动忽略,所以只有在连续输入两个%c的格式时才会出现这样的问题!...转载 2022-08-06 21:59:25 · 294 阅读 · 0 评论