Chinaunix首页 | 论坛 | 博客
  • 博客访问: 293651
  • 博文数量: 49
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 901
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-31 14:32
个人简介

追求卓越 因为经历,所以幸福

文章分类

全部博文(49)

文章存档

2015年(5)

2014年(30)

2013年(14)

分类: C/C++

2013-09-01 14:35:22

 

?  变量和作用域

1.全局变量的初始化

1)   如果全局变量没有初始化,那么编译器在编译的时候就会把这个变量初始化为0

2)   全局变量在初始化的时候就不能做变量运算的,它只能用常量来初始化。

2.局部变量的作用域

3.其它作用域

1)   在作用域的开关是可以定义变量的,而不仅仅是在函数的开始处。

2)   {  }也是一个作用域

?  多文件编程

Hello.c main.c hello.h为例

4.预编译头文件:

#ifndef __HELLO_H__

#define __HELLO_H__

#endif

作用:防止头文件重复定义

5.头文件中用<>与“”包含头文件的区别

#include

#include "hello.h"

<>:首先从系统预定义的头文件路径中去查找该头文件  /usr/include/

“”:首先从当前工程目录下面去查找头文件,如果没有找到,则去工程指定路径下查找。  -I 用于指定头文件路径

例子:

gcc main.c hello.c -o main -I ../

技巧:VIM中光标定位到自定义的头文件,按下gf进入头文件的定义

退出头文件查看:CTRL+o

?  增量式开发

中心思想:步步为赢,逐个击破

任何一个大型软件或项目的开发,都是由小的代码或功能函数组成。

?  理解递归

中心思想:不到黄河心不死,不见棺材不落泪

必须有一个退出的条件,不然它就真的不死心了。

0的阶乘等于1

题目:求1-n的阶乘

实例:

BIN = recurrence

LDFLAGS = -lpthread

CFLAGS += -g -Wall

LIBS = -L .

all:$(BIN)

OBJECT=${patsubst %.c, %.o, ${wildcard *.c}}

$(BIN):${OBJECT}

    ${CC} -o $@ $^ $(LDFLAGS) $(LIBS)

.PHONY:clean

clean:

    -rm *.o $(BIN)

代码:

#include

int recurrence(int n)

{

    if(n == 0)

        return 1;

    return n*recurrence(n-1);

}

int main()

{

    int n;

    int result;

    printf("Please input a number:");

    scanf("%d",&n);

    result = recurrence(n);

    printf("%d\n",result);

    return 0;

}

简化后的Makfile

BIN = recurrence

#LDFLAGS = -lpthread

CFLAGS += -g -Wall

all:$(BIN)

OBJECT=${patsubst %.c, %.o, ${wildcard *.c}}

$(BIN):${OBJECT}

.PHONY:clean

clean:

    rm *.o $(BIN) -f

阅读(1412) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~