Dotfish

博客园 首页 新随笔 联系 订阅 管理

2012年11月27日 #

摘要: linux下的C语言开发(gdb调试) 编写代码过程中少不了调试。在windows下面,我们有visual studio工具。在linux下面呢,实际上除了gdb工具之外,你没有别的选择。那么,怎么用gdb进行调试呢?我们可以一步一步来试试看。#include <stdio.h>int iterate(int value){ if(1 == value) return 1; return iterate(value - 1) + value;}int main(){ printf("%d\n", iterate(10)); return 1;} 既然... 阅读全文
posted @ 2012-11-27 15:26 Peter Wang 阅读(182) 评论(0) 推荐(0) 编辑

摘要: gcc的编译流程:源代码(*.c)——>预处理(Pre-Processing)——>编译(Compiling)——>汇编(Assembing)——>链接(Linking)——>可执行文件一个例子:一个经典的helloworld的程序1).先用vim编辑源程序,保存为hello.c .vim hello.c2)然后用gcc的“-E”参数预处理,生成经过预处理的源程序文件hello.igcc hello.c -o hello.i -E3)接着用gcc的“-S”参数编译,生成汇编语言程序文件hello.sgcc hello.i -o hello.s -S4)然后用gcc 阅读全文
posted @ 2012-11-27 15:07 Peter Wang 阅读(126) 评论(0) 推荐(0) 编辑

摘要: 当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一种可以理解为,p是一个指针,它指向的内容是const int 类型。p本身不用初始化它可以指向任何标示符,但它指向的内容是不能被改变的。 第二种很容易被理解成是p是一个指向int的const指针(指针本身不能被修改),但这样理解是错误的,它也是表示的是指向const的指针(指针指向的内容 阅读全文
posted @ 2012-11-27 14:38 Peter Wang 阅读(128) 评论(0) 推荐(0) 编辑