《嵌入式LinuxC高级编程.ppt》由会员分享,可在线阅读,更多相关《嵌入式LinuxC高级编程.ppt(45页珍藏版)》请在装配图网上搜索。

1、嵌入式Linux C高级编程(一),报告人:曹国辉,课程目标,实训项目,C数据的输入与输出,C语言流程控制,数据类型、运算符和表达式,计算机程序基础及基本概念,程序的本质,广义的讲,为了实现一个特定的目标而预先设计的一组可操作的工作步骤就可以称之为一个程序 找工作: 写简历 投简历 笔试 面试 入职 对于计算机系统,简单的说,程序就是系统可以识别的一组有序的指令 程序存储在磁盘上,被加载到内存中,计算机系统从内存中逐条读取指令并执行 程序 = 算法 + 数据结构 算法:解决问题的方法和步骤,对操作的描述,是程序设计的灵魂。 数据结构:对数据的描述,用来指定程序中的数据类型和数据的组织形式。,程。

2、序设计语言概述,程序设计语言:计算机能够识别的语言,人与计算机交流的语言。 程序设计语言分为:机器语言、汇编语言、高级语言。 机器语言:直接使用机器指令(0,1序列)来设计程序,可以 被计算机系统直接识别。 汇编语言:把机器指令符号化,即通过一组简单的的符号来表示机器指令,更接近于自然语言,更容易理解和使用。 不能被计算机系统直接识别,要转化成机器语言后才能执行。和机器语言一样,开发工作量大,无法移植。 高级语言:和特定的计算机系统无关,更接近于人类自然语言。一条语句对应多条机器指令,工作量小,开发效率高。同样需要转换成机器代码后才能被计算机系统识别、执行。 BASIC , FORTRAN, 。

3、PASCAL, C, C+,C语言程序结构组成,C语言程序实质是函数的集合。,/* test.c This is the first C program */ #include void main ( ) printf (“This is a C program!n); ,函数运行结果是:This is a C program! 如何实现带参数的主函数 ?,C程序的编译、链接与运行,Linux下,C语言源码文件通过编译、汇编与链接后生成可执行文件elf文件,由操作系统加载到内存中运行。,模块化程序设计方法,大型的C程序一般由多个源码文件组成,通常把与实现一个功能相关的函数放在一个源码文件里面,。

4、称为一个模块。,/* main.c */ #include #include int main(void) int x = 10; int y = 20; int z = 0; z = max(x,y); printf(“z:%d”,z); return 0; ,/*mymax.c */ #include int max(int a1,int a2) if(a1 a2) return a1 return a2; ,/*mymax.h */ extern int max(int a1,int a2),课程目标,实训项目,C数据的输入与输出,C语言流程控制,数据类型、运算符和表达式,计算机程序基础。

5、及基本概念,C语言支持的数据类型,数据类型,构造类型,指针类型,空类型(无值类型) void,C语言提供了以下一些数据类型:,常量与符号常量,常量 在程序运行过程中,其值不能被改变的量称为常量 常量分为不同的类型:,整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 a, b,2 字符串 a, ab,1232,符号常量:用一个标识符代表一个常量 例如: #define PI 3.1415926,变量,变量:在程序运行过程中,其值可以被改变的量称为变量; 变量代表内存中具有特定属性的一个存储单元。它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改。

6、变的。 变量的类型实质就是指存放在变量所代表的存储单元中存放数据的数据类型,可以是C语言支持所有数据类型。 变量的地址就是它所代表存储单元的地址;,变量的定义与使用,C语言中: 变量必须先定义,后使用 定义变量时要指定变量名和数据类型 变量应该先赋值,后引用 例如: int a, b,c; a = 5; b = 3; c = a+b; printf(“%d”,c);,整型数据类型,有符号整型 无符号整型 数据长度 int unsigned int 16或32位 short int unsigned short int 16位 long int unsigned long int 32位,数据类。

7、型 取值范围 有符号 short(16位) -32768 32767 无符号 unsigned short(16位) 0 65535 有符号 int (32位) -2147483648 2147483647 无符号 unsigned int (32位) 0 4294967295,字符型数据类型,字符具有数值特征 A 65 0100 0001 整型变量和字符变量的定义和赋值可以互换【 ASCII码范围】 char c; c = A; 或 c = 65;,int i; i = 65; 或 i = A;,转义字符,以“”开头的特殊字符称为转义字符,n 换行 t 横向跳格 r 回车 反斜杠 ddd d。

8、dd表示1到3位八进制数字 xhh hh表示1到2位十六进制数字 例如:printf(“n”);,浮点型数据类型(实型数据),实型(浮点型)数据 单精度浮点型 float (4字节) 双精度浮点型 double (8字节),结构体数据类型,结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-自定义数据类型 引入结构体的好处:加强数据项之间的联系,如学生的基本信息,包括学号、姓名、性别、年龄、班级、成绩等数据项。这些数据项描述了一个学生的几个不同侧面。,char no9; /学号 char name20; /姓名 char sex; /性别 unsigned int age; /年龄。

9、 unsigned int classno; /班级 float grade; /成绩,结构体类型的定义和使用,结构体类型定义 struct 结构体类型名 数据类型名1 成员名1; 数据类型名2 成员名2; 数据类型名n 成员名n; ; 例: struct Student_Info char no9; /学号 char name20; /姓名 char sex; /性别 float grade; /成绩 ;,定义结构体变量 struct student_info stuinfo; 结构体变量的引用: stuinof.grage = 98.5; strcmp(stuinfo.name,”guoh。

10、ui”); 注意:访问结构体变量只能访问结构体变量的成员,不能整体访问结构体变量,联合体(共用体),构造数据类型,也叫共用体 用途:使几个不同类型的变量共占一段内存(相互覆盖),联合体定义 union 联合体类型名 数据类型名1 成员名1; 数据类型名2 成员名2; 数据类型名n 成员名n; ;,联合体的大小是成员中占内存最大的成员的大小,union UData short i; char ch; float f; ; union UData x; x.i = 78;,C语言运算符概念及分类,的运算符有以下几类: (1)算术运算符 (+ - * / %) (2)关系运算符 (!) (3)逻辑运。

11、算符 (!|) (4)位运算符 ( |) (5)赋值运算符 (及其扩展赋值运算符) (6)条件运算符 (?:) (7)逗号运算符 (,) (8)指针运算符 (*和) (9)求字节数运算符() (10)强制类型转换运算符( (类型) ) (11)分量运算符(-) (12)下标运算符() (13)其他 (如函数调用运算符(),表达式概念及分类,表达式:由运算符和运算对象(操作数)组成的有意义的运算式子,它的值和类型由参加运算的运算符和运算对象决定。 运算符:具有运算功能的符号 运算对象:常量、变量和函数等表达式 算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等,强制类型转换。

12、运算符,可以利用强制类型转换运算符将一个表达式转换成所需类型。 一般形式:(类型名)(表达式) 例如: (double) 将转换成double类型 (int)(x+y) 将x+y的值转换成整型 (float)(5%3) 将5%3的值转换成float型,关系运算符及关系表达式,逻辑运算符及逻辑表达式,位运算符,复合运算符,条件运算符,条件运算符? : 条件运算符? :是一个三目运算符, 其运算的一般形式是: ? : 例如, int x=82, y=101; x = y ? x+18 :y-100 /运算结果为1 x (y-11) ? x-22 : y-1 /运算结果为60,长度运算符 sizeo。

13、f,长度运算符 sizeof 单目运算符,计算变量或数据类型的字节长度 int a; sizeof(a) 求整型变量 a 的长度,值为4(bytes) sizeof(int) 求整型的长度,值为4 (bytes) sizeof(double) 求双精度浮点型的长度,值为8 (bytes),课程目标,实训项目,C数据的输入与输出,C语言流程控制,数据类型、运算符和表达式,计算机程序基础及基本概念,if else 语句,if (表达式) 语句块1 else 语句块2 例: if(x y) z = x else z = y,if else if else 语句,if(表达式1) 语句块1 else 。

14、if(表达式2) 语句块2 else if(表达式3) 语句块3 else if(表达式4) 语句块4 . else 语句块n,if语句的嵌套,if() if() 语句块1 else 语句块2 else if() 语句块3 else语句块4 if语句中if与else的配对关系为 else总是与它上面的最近的if配对.,switch语句,switch (表达式) case 常量表达式1:语句块1;break; case 常量表达式2:语句块2; break; . case 常量表达式n:语句块n; break; default:语句块n+1 ,for语句构成循环 例如:求 将变化为: for(i。

15、=1;i=100;i+) sum=sum+i; ,循环语句,While循环 例如:求 int main() int i=1,sum=0; while (i=100) sum=sum+i; i+; printf(“%d”,sum); return 0; ,break语句,用于从循环体内跳出循环体,即提前结束循环。 break只能用在循环语句和switch语句中. for(r=1;r100) break; printf(“%f”,area); ,continue语句,结束本次循环,接着判定下一次是否执行循环。 continue与break的区别: continue只结束本次循环,而break终止本。

16、层循环. 例: int main() int n; for(n=100;n=200;n+) if (n%3 = 0) continue; printf(“%d”,n); ,课程目标,实训项目,C数据的输入与输出,C语言流程控制,数据类型、运算符和表达式,计算机程序基础及基本概念,格式化输出函数 printf,printf输出函数用来向控制台输出格式化字符串。 函数原型:int printf(const char *format,.); format参数用来指定输出格式,格式控制说明符号 %。 例: int x = 4 float y = 3.5 char str=“hello” printf(。

17、“x = %dn”,x); printf(“y = %fn”,y); printf(“str = %sn”,str);,常用格式转换说明符,格式化输入函数 scanf,scanf格式化输入函数用来从标准输入设备(键盘)读取信息。 函数原型:int scanf(const char *format,); format参数用来指定输出格式,格式控制说明符号 %。 例: int x; float y; char str10; scanf(“%dn”,字符的输入函数getchar,getchar用来从标准输入流中读取字符 当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区。

18、中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符 回显用户输入字符到屏幕 例: #include int main(int argc,char *argv) char c; while(c=getchar()!=#) printf(hello!n); return 0; ,字符输出函数putchar,字符输出函数putchar:用来向终端输出一个字符。 例: char ch1, ch2; ch1=getchar(); ch2=getchar(); putchar(ch1); putchar(#); putchar(ch2);,课程目标,实训项目,C数据的输入与输出,C语言流程控制,数据类型、运算符和表达式,计算机程序基础及基本概念,实训项目,编写一个程序,显示一个菜单,为你提供加法,减法,乘法或除法的选项。选择后,该程序请求2个数,然后执行你所选择的操作,输出运算结果。如果用户输入的数非法,则提示用户非法输入,要求重新输入数据。,Thank You。

嵌入式Linux编程基础ppt,嵌入式LinuxC高级编程.ppt相关推荐

  1. linux如何实现网络高级编程,嵌入式Linux网络编程之:网络高级编程-嵌入式系统-与非网...

    10.3  网络高级编程 在实际情况中,人们往往遇到多个客户端连接服务器端的情况.由于之前介绍的如connet().recv()和send()等都是阻塞性函数,如果资源没有准备好,则调用该函数的进程将 ...

  2. linux嵌入式c网络编程,嵌入式Linux网络编程之:网络高级编程

    本文引用地址:http://www.eepw.com.cn/article/257115.htm 在实际情况中,人们往往遇到多个客户端连接服务器端的情况.由于之前介绍的如connet().recv() ...

  3. 嵌入式Linux开发环境搭建-4-嵌入式编程基础知识

    嵌入式Linux开发环境搭建-4-嵌入式编程基础知识 1.安装代码编辑器 2.交叉编译工作使用 1.安装代码编辑器 参考文档 ubuntu几款好用的代码编辑器_百度经验 安装sublime text ...

  4. 杭州嵌入式linux培训机构,杭州嵌入式培训|嵌入式软件培训|嵌入式编程|杭州linux培训-和盈...

    技术名称 知识要点 学习目的 Linux操作系统 Linux介绍与安装 Linux基本命令操作 文件系统管理 用户管理 权限管理 网络配置 常用文本处理工具 搭建Samba服务器 搭建FTP服务器 搭 ...

  5. 假设linux分配给u盘设备名是,嵌入式linux开发基础试卷-应用物理A答案

    试 卷 考试科目: 嵌入式 linux 开发基础 姓名: 试卷适用专业(班) : 09 应用物理 套别:A 套(√)B 套( ) 五 20 六 七 总计 100 考核方式:开卷( )闭卷(√) 了多达 ...

  6. 嵌入式linux 项目开发(一)——HTML编程

    嵌入式linux 项目开发(一)--HTML编程 本文主要讲解HTML的基础知识,主要是涉及嵌入式web服务器中数据交互HTML页面表单制作部分. 一.HTML简介 HTML是Hypertext Ma ...

  7. 视频教程-嵌入式Linux开发基础-嵌入式

    嵌入式Linux开发基础 嵌入式工程师.嵌入式讲师.10多年嵌入式开发实战经验,6年专业嵌入式课程培训经验.主要研究方向是嵌入式Linux系统应用和物联网技术应用.先后参与过武警边防音视频矩阵切换系统 ...

  8. LinuxC高级编程——线程

    LinuxC高级编程--线程 宗旨:技术的学习是有限的,分享的精神是无限的. 一.线程基础 main函数和信号处理函数是同一个进程地址空间中的多个控制流程,多线程也是如 此,但是比信号处理函数更加灵活 ...

  9. LinuxC高级编程——进程

    LinuxC高级编程--进程 宗旨:技术的学习是有限的,分享的精神是无限的. 每个进程在内核中都有一个进程控制块( PCB)来维护进程相关的信息, Linux内核的 进程控制块是task_struct ...

最新文章

  1. 求循环小数的表示以及循环节长度
  2. 百度云观测优化建议解决方案:未设置max-age或expires
  3. Boost:使用Qt加载图像,应用简单的框模糊滤镜
  4. 【译文】漫谈ASP.NET中的Session
  5. 内存泄漏Valgrind
  6. drools 7.x 决策表使用
  7. A股开盘:深证区块链50指数跌0.20%,136只概念股下跌
  8. 关于钩子(Hook)的使用
  9. MVVM最佳解读和实践
  10. c语言中,x-y,'105',ab,7f8那个是正确的,C语言习题册
  11. 第九十八节,JavaScript语法、关键保留字及变量
  12. cmd跑绿色代码_cmd整人代码(cmd简单游戏代码)
  13. 微pe工具箱有linux版吗,微PE工具箱
  14. 计算机io设备是cpu控制的吗,I/O控制器及控制方式,了解一下
  15. 浅谈程序员接私单那点事及接私单需要注意的问题
  16. 常见嵌入式OS资料汇总
  17. verify_area
  18. 记录一次服务器技术选型
  19. mysql删去root用户无法登录_MySQL误删root用户导致无法登陆解决方法
  20. 九连环(“华为杯”山东理工大学第十一届ACM程序设计竞赛(正式赛)网络同步赛)

热门文章

  1. [34期] KO战队0811笔记总结|房子
  2. 网易智企首发:万字讲透元宇宙前世、今生与未来
  3. 基于互联网技术的跌倒检测解决方案
  4. 打游戏的蓝牙耳机推荐哪一款?英雄联盟电竞耳机推荐
  5. python哑变量转换为类别变量
  6. vivos7和华为p40哪个好 vivos7和华为p40参考配置区别评测
  7. 24点游戏的暴力美学
  8. iview图表_Vue高效UI组件库—iView开发实践
  9. React Native 三端同构实践
  10. “佟掌柜”变身功夫高手 闫妮《大灌篮》出彩