Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1300196
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: LINUX

2011-02-20 20:04:26

input (键盘)--> 硬盘 --> ./a.out(事先编译好,起始地址) --> 
内存 --> cpu去内存中读 --> 指令(操作码,地址码) --> 操作码给控制器
--> 从地址中取值给cpu内部寄存器 --> 运算器做运算 --> 运算结果给输出部分;

c关键字:
1.基本数据类型:
	char double float int long short void
2.构造数据类型:
	enum struct union
3.修饰数据类型:
	auto const extern register signed static unsigned volatile 
4.自定义类型
	typedef 
4.控制语句:
	break case continue do else goto for if switch while default
5.其他:
	return sizeof


gcc hello.c ==> a.out (可执行文件) 
cc hello.c ==> a.out 
(unix之前的编译器)
make hello ==> cc hello.c -o hello


写程序的步骤:
1. 确定目标; 显示一个hello world!
2. 设计程序; 1) printf 2) array 3) char * ... 
	顺序结构 条件 循环;
3. 编写程序;
	io接口: stdio.h printf
	入口函数: main 
4. 编译程序;
	gcc hello.c
	1) gcc -E 预处理; 执行预处理命令;
	2) gcc -S 编译;	  .c ==> .s 编成汇编代码;
	3) gcc -c 汇编;   .s ==> .o 把汇编编成2进制文件;.o不能执行;
	4) ld 链接;		  .o ==> 可执行文件; 可执行;
		-lm手动链接  c库是自动链接;
5. 执行; 测试;
6. 调试;
	1) 语法错误;
	2) 逻辑错误;
	3) 警告错误;
7. 维护; 


预处理: gcc -E hello.c -o hello.i
				       ^ 生成目标; hello.i
编译: gcc -S hello.i -o hello.s 
		  ^ 编译;
汇编: gcc -c hello.s -o hello.o 
						^ 目标文件; 有elf头的2进制文件;不可执行的;
链接: gcc hello.o -o hello
					 ^ 可执行;

-------------------------------------------------

sizeof(int) : 返回操作数所占的字节数;
		^ 
sizeof(array) : 
int i;
sizeof(i);

程序用于管理数据;
c支持的数据类型: 所占字节数; 取决于平台和编译器;
int : c没有规定int是几个字节; 32位平台: 4个字节; 
	  int : 字长; 32 ==> 4个字节; 16平台下2个字节;
char = 1 : char就是一个字符; 一个字节; 
short = 2 : c 规定; short <= int; short的size可以等于int; 16平台下2个字节;
long = 4 : c 规定; long >= int; long的size可以等于int; 16平台下4个字节
float = 4 
double = 8 

long long = 8
long double = 12
long float X 
long int ==> long 
short int ==> short

unsigned int short char long 
      不能修饰float double












阅读(751) | 评论(0) | 转发(0) |
0

上一篇:1.c

下一篇:2.c

给主人留下些什么吧!~~