C
hanxp001
not complicated
展开
-
linux,##args,g++ -E,nm...
1、g++ -E 单独执行待编译阶段,eg :g++ -E yuan.cpp > out.cpp 可查看里面的out.cpp待编译内容。2、nm -C将低级符号名解码(demangle)成用户级名字, eg:nm -C out.o,可以更容易的查看里面的目标问题内容。3、宏简单的替换,看如下代码:#define test(a,b) a * b int main(){ int n = 10; test(int ,a) = &n...原创 2020-10-14 23:15:18 · 661 阅读 · 0 评论 -
fflush(stdio)、fflush(stdout)详解
问答:fflush(stdio):清空输入缓冲区fflush(stdout):清空输出缓冲区1、什么是缓冲区? 缓冲区就是我们常说的缓存,属于内存的一部分。它依据对应的输入设备和输出设备把内存的一部分空间分为输入缓冲区和输出缓冲区。2、为什么会有缓冲区? 一句话:减少对磁盘的读写次数,提高计算机的运行效率。 why?磁盘是机械结构,读取磁盘上面的东西需要磁头转动到相应的位置进行读取,而内存是电,一瞬间到达。减少磁盘的读取也利于磁盘的使用...原创 2020-10-14 00:34:53 · 14562 阅读 · 6 评论 -
关于static和extern在c/c++的头文件定义全局变量的用法说明
只说关于在头文件中的使用:1、static定义变量假如放在头文件中:eg:static int g_num = 100;那么定义的变量只在当前引用它头文件的源文件中生效,各个引用它头文件的源文件使用相关独立,不存在交集。即:如果在一个头文件中声明:static intg_num= 100;那么会为每个包含该头文件的cpp都创建一个全局变量,但他们都是独立的.但是这种方法不常用,也不推荐。因为这样写意味着保护该头文件的所有源文件都包含了一个同名但不同作用域的变量,使用不明...原创 2020-08-31 00:26:09 · 671 阅读 · 0 评论 -
宽字节、多字节、ANSI、UTF-8、unicode、GBK、之间的关系以及ANSI与UTF-8的相关转换
一、简单明了的说下这些区别和关系,网上说的太繁琐、或者太单一。宽字节:通常用两个字节表示一个字符,对应的就是Unicode。多字节:用多个字节表示一个字符,对应的就是ANSI。ANSI:他的产生源于ASCII字符集,最开始7个bits,总共代表了128个字符,包括英文、字母、数字、和一些特殊字符。后面由于各个国家为了彰显自己的本土语音,进行了扩充,产生了GB2312, BIG5, J...原创 2019-09-16 23:51:38 · 2232 阅读 · 0 评论