找回密码
 注册
搜索
查看: 852|回复: 9

[讨论] C语言编程技巧rar

[复制链接]
发表于 2009-3-6 11:03:19 | 显示全部楼层 |阅读模式
【文件名】:0936@52RD_C语言编程技巧rar.rar
【格 式】:rar
【大 小】:678K
【简 介】:
【目 录】:




C语言嵌入式系统编程修炼之一:背景篇!
      不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,
势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的
特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一
般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发
的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的
精妙,沉醉于C语言给嵌入式开发带来的便利。

   图1给出了本文的讨论所基于的硬件平台,实际上,这也是大多数嵌入式系
统的硬件平台。它包括两部分:  

   (1) 以通用处理器为中心的协议处理模块,用于网络控制协议的处理;

   (2) 以数字信号处理器(DSP)为中心的信号处理模块,用于调制、解调
和数/模信号转换。

   本文的讨论主要围绕以通用处理器为中心的协议处理模块进行, 因为它更多
地牵涉到具体的C语言编程技巧。而DSP编程则重点关注具体的数字信号处理算
法,主要涉及通信领域的知识,不是本文的讨论重点。

   着眼于讨论普遍的嵌入式系统C编程技巧, 系统的协议处理模块没有选择特
别的CPU,而是选择了众所周知的CPU芯片--80186,每一位学习过《微机原理》
的读者都应该对此芯片有一个基本的认识,且对其指令集比较熟悉。80186的字
长是16位,可以寻址到的内存空间为1MB,只有实地址模式。C语言编译生成的
指针为32位(双字),高16位为段地址,低16位为段内编译,一段最多64KB。
 楼主| 发表于 2009-3-6 11:04:38 | 显示全部楼层

C语言重要用法

【文件名】:0936@52RD_C语言重要用法.rar
【格 式】:rar
【大 小】:7K
【简 介】:
【目 录】:




C语言中的关键字
auto :     声明自动变量 一般不使用
double :声明双精度变量或函数
int:         声明整型变量或函数
struct:    声明结构体变量或函数
break:    跳出当前循环
else :     条件语句否定分支(与 if 连用)
long :    声明长整型变量或函数
switch :    用于开关语句
case:     开关语句分支
enum : 声明枚举类型
register:声明积存器变量
typedef:用以给数据类型取别名(当然还有其他作用)
char :     声明字符型变量或函数
extern: 声明变量是在其他文件正声明(也可以看做是引用变量)
return :子程序返回语句(可以带参数,也看不带参数)
union:   声明联合数据类型
const : 声明只读变量
float:      声

关键字static的作用是什么?
  在C语言中,关键字static有三个明显的作用:
1 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。


一、c程序存储空间布局 C程序一直由下列部分组成:        

1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;      

2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。      

3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。      

4)栈——增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。      

5)堆——动态存储分。

二、 面向过程程序设计中的static

1. 全局静态变量     
在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。      

   1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)     

   2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)     

   3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。看下面关于作用域的程序:

     //test static1.c
      void display();
点评回复

使用道具 举报

 楼主| 发表于 2009-3-6 11:06:01 | 显示全部楼层

C语言库函数参考

【文件名】:0936@52RD_C语言库函数参考.rar
【格 式】:rar
【大 小】:68K
【简 介】:
【目 录】:




目錄
---------- MATH.H
abs
fabs
cabs
ceil
sin
cos
tan
asin
acos
atan
atan2
sinh
cosh
tanh
exp
floor
fmod
frexp
log
log10
modf
pow
sqrt
hypot
poly
matherr
ldexp

---------- MEM.H
memccpy
memchr
memcmp
memicmp
memcpy
memmove
memset

---------- PROCESS.H
spawnl
spawnle
spawnlp
spawnlpe
spawnv
spawnve
spawnvp
spawnvpe

---------- SETJMP.H
longjmp
setjmp

---------- SIGNAL.H
signal
raise

---------- STDARG.H
vfprintf
vprintf
vsprintf
vscanf
va_start
va_end
va_arg

---------- STDIO.H
fopen
fclose
fflush
ferror
fileno
freopen
clearerr
fgetc
fgetchar
fputchar
fgets
feof
fputs
fread
fwrite
fprintf
fscanf
scanf
printf
fseek
ftell

---------- STDLIB.H
calloc
free
malloc
realloc
rand
abort
exit
getenv
putenv
labs
atof
atoi
atol
ecvt
fcvt
gcvt
ltoa
itoa
strtod
strtol
swab
lfind
lsearch
qsort
bsearch
div
ldiv
random
randomize
srand
system

---------- CTYPE.H
isalpha
iscntrl
isdigit
isgraph
islower
tolower
toupper
isalnum
isprint
ispunct
isspace
isupper
isxdigit
isascii

---------- TIME.H
localtime
asctime
ctime
difftime
gmtime
time
tzset

---------- DIR.H
chdir
findfirst
findnext
getcurdir
getcwd
getdisk
mkdir
mktemp
rmdir
searchpath
setdisk
fnmerge
fnsplit

---------- DOS.H
absread
abswrite
allocmem
bdos
点评回复

使用道具 举报

发表于 2009-3-6 12:37:57 | 显示全部楼层
old materrial[em11]
点评回复

使用道具 举报

发表于 2009-11-18 14:50:23 | 显示全部楼层
没钱了,呵呵
点评回复

使用道具 举报

发表于 2009-11-18 14:55:57 | 显示全部楼层
强烈要求免费
点评回复

使用道具 举报

发表于 2009-11-18 23:45:24 | 显示全部楼层
thanks
点评回复

使用道具 举报

发表于 2010-2-25 15:58:20 | 显示全部楼层
强烈抗议啊[em07]
点评回复

使用道具 举报

发表于 2010-8-13 10:23:30 | 显示全部楼层
下了才后悔,这种资料免费的很多
点评回复

使用道具 举报

发表于 2010-8-24 06:07:46 | 显示全部楼层
这样的资料还要收钱,没必要了吧。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-26 12:39 , Processed in 0.048001 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表