单片机C语言基础.ppt

  1. 1、本文档共250页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机C语言基础 例:使用二维数组操作多字符串 文件名:exp312.c #includestdio.h int main(void) { char fruit[3][7] = { Apple, Pear, Orange}; int i,j; for(i=0;i3;i++) { for(j=0;j7;j++) printf(%c,fruit[i][j]); printf(\n); } return(0); } #define 例:#define PI 3.1415926 //遇到PI用3.1415926代替 例: #define unsigned char string //定义一个类型 string a; 例: #define unsigned char * PSTR PSTR p1; //p1是一个指针 处理多包含(条件编译) 假设有两个头文件a1.h和a2.h 头文件a1.h包含以下语句 #include “c.h” … 头文件a2.h也包含以下语句 #include “c.h” … 2 常用预处理语句 编制的程序将a1.h和a2.h都包含进来 #include “a1.h” #include “a2.h” … 那么头文件c.h被包含了两次。 为处理多包含情况可在c.h中做以下定义 #ifndef C_H #define C_H … #endif 这样,头文件c.h只会被处理一次。 作用域和链接方式 弄懂代码块作用域,文件作用域;外部链接,内部链接,空链接 在函数内声明的变量,作用域是在函数包含的代码块内;空链接。 int function() { int x; //代码块作用域变量,x在该函数的代码块内是可见的;空链接 … return(0); } 3 存储类前缀限定符static,extern 在任何函数外声明的变量,作用域在文件内。加static限定内部链接,否则外部链接 下面代码存储在file1.c中 #includestdio.h int c;//文件作用域变量,c在file1.c中是可见的;外部链接,其它文件可以引用该变量 static int d; //文件作用域变量,d在file1.c中可见;内部链接,其它文件不可以引用该变量 void swap1(int *a , int *b ) //函数是文件作用域变量;外部链接,其它文件可以引用该变量 { … } swap1.c文件 #include stdio.h int c = 4; //文件作用域变量;外部链接,其它文件可引用或修改该变量 static int temp; //文件作用域变量;内部链接,其它文件不可引用修改该变量。 void swap1(int *a, int *b) //函数是文件作用域的;外部链接,其它文件可应用 { temp = *a; *a = *b; *b = temp; } Main.c文件 #include stdio.h #include stdlib.h extern void swap1(int* ,int* ); int main(void) { int a=1, b=2; extern int c; //告诉编译器,变量c在main.c文件外定义 swap1(a, b); printf(a = %d\t b = %d\n,a,b); printf(c = %d\n,c); c = 5; //可修改变量c的值 printf(c = %d\n,c); return EXIT_SUCCESS; } 输出为 2 1 4 5 如果想某一个文件中的某一函数不可被其它文件引用,在函数定义时加限定符static static修饰函数代码块内的变量 表示该变量是静态存储变量(不加static是动态存储变量,存于堆栈中),生存期是整个程序运行期间,函数结束后,该内存块不撤销,该变量同样对代码块外部不可见。 #include stdio.h void fun1() { static int x=0; x += 1 ; printf(%d\t , x); } int main(void) { fun1(); fun1(); fun1(); return(0); } 输出:1 2 3 4 typedef的使用 typedef通常用于下面两种情况 (1

文档评论(0)

kbook + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档