反汇编
程序在内存中的模型
编译器为程序分配的内存在逻辑上可分为:代码段、数据段、堆、栈
代码段: 保存程序文本
数据段: 保存初始化的全局变量和静态变量
BSS: 未初始化的全局变量和静态变量
堆: 动态内存分配,向地址增大的方向增长
栈: 存放局部变量,向地址减小的方向增长
more >>
不念过去,不畏将来
编译器为程序分配的内存在逻辑上可分为:代码段、数据段、堆、栈
代码段: 保存程序文本
数据段: 保存初始化的全局变量和静态变量
BSS: 未初始化的全局变量和静态变量
堆: 动态内存分配,向地址增大的方向增长
栈: 存放局部变量,向地址减小的方向增长
more >>
http://blog.csdn.net/code_crash/article/details/4854965
首先看看如下一个声明:
int* ( *( *fun )( int* ) )[10];
这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。
C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。
如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。
不过,右左法则其实并不是C/C++标准里面的内容,它是从C/C++标准的声明规定中归纳出来的方法。
C/C++标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,从嵌套的角度看,两者可以说是一个相反的过程。右左法则的英文原文是这样说的:
more >>The right-left rule: Start reading the declaration from the innermost parentheses, go right, and then go left. When you encounter parentheses, the direction should be reversed. Once everything in the parentheses has been parsed, jump out of it. Continue till the whole declaration has been parsed.
两类字符不能直接使用:
这些情况下会用到转义序列,转移序列均以反斜线\
开始。
C++规定了如下的转义字符:
1 | 换行符 \n 横线制表符 \t |
注意:
如果反斜线后边跟着的八进制数字超过3个,只有前3个数字与\
构成转义序列。
例如”\1234
“表示两个字符,即八进制数123
对应的字符以及字符4
.
相反,\x
要用到后边跟着的所有数字,例如”\x1234
“表示一个16位的字符,该字符由这4个十六进制数所对应的比唯一确定。
例题:
以下程序段的输出结果是:1
2char s[]="\\123456\123456\t";
printf("%d\n",strlen(s));
答案:12
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true