摘要: (1)自定义bool变量由于C语言中没有bool变量,我们可以自定义一个,然后放在全局的头文件中。typedef enum{ false = 0, true = 1} bool;(2)计算数组的大小(长度)#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))(3)求最大值、最小值#define MAX(x, y) ((x) >= (y) ? (x) : (y))#define MIN(x, y) ((x) >= (y) ? (y) : (x))(4)空循环防错写法#define DO_NO_THING()#include <st 阅读全文
posted @ 2013-05-20 18:29 robotke1 阅读(585) 评论(1) 推荐(1)
摘要: (转载)http://blog.sina.com.cn/s/blog_65ad6e120100hjmt.html这里详细讨论一下disassemble/disass命令GDB文档:Debugging with GDB* 反汇编一个函数disass func_name*反汇编一段内存地址, 第1个参数是起始地址,第2个是终止地址disassemble 0×0 0×10*info line 命令来映射一个源码行到程序地址,然后使用命令disassemble显示一个地址范围的机器指令。例1. 查看main函数从哪里开始(gdb) info line mainLine 34 of 阅读全文
posted @ 2013-05-20 16:05 robotke1 阅读(990) 评论(0) 推荐(0)
摘要: (转载)http://blog.csdn.net/daiyutage/article/details/8605580字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char*pstr="helloworld!";这里,"helloworld!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!!!一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操 阅读全文
posted @ 2013-05-20 15:56 robotke1 阅读(407) 评论(0) 推荐(0)
摘要: (转载)http://blog.csdn.net/hmsuccess/article/details/2808109原来一直对于可执行程序的内存分布很迷惑,最近查了好多资料以及请教了诸多高手,方有一些领悟,现将自己领悟的写下来,以供大家批评指正。在操作系统中,一个进程就是处于执行期的程序(当然包括系统资源),实际上正在执行的程序代码的活标本。那么进程的逻辑地址空间是如何划分的呢?图1做了简单的说明(Linux系统下的):图1左边的是UNIX/LINUX系统的执行文件,右边是对应进程逻辑地址空间的划分情况。首先是堆栈区(stack),堆栈是由编译器自动分配释放,存放函数的参数值,局部变量的值等。 阅读全文
posted @ 2013-05-20 15:52 robotke1 阅读(348) 评论(0) 推荐(0)
摘要: (转载)http://blog.csdn.net/haiyan0106/article/details/1627007 我的方法是编译成汇编文件后(gcc -S) ,然后用as编译成.o文件,最后再生成执行文件。给你一个我的调试过程。#include <stdio.h>#include <stdlib.h>#include <string.h>void test(void){ int number = 10; printf("The number: %d\n", number);}int main(int argc, char* argv 阅读全文
posted @ 2013-05-20 15:09 robotke1 阅读(435) 评论(0) 推荐(0)
摘要: (1)打印缓冲区(数组、字符串)中某段的内容(2)查看GDB当前所执行的源文件和源文件的行数(3)获取变量的类型信息 阅读全文
posted @ 2013-05-20 14:42 robotke1 阅读(178) 评论(0) 推荐(0)