C语言基础知识-苏嵌实训 嵌入式 linux C 第 3 天
项目开发日报表:
项目名称 | 苏嵌实训-嵌入式Linux 第3天 |
---|---|
今日进度及任务 | 嵌入式C实战详解1-开发流程、编码规范 |
任务完成情况 | 课堂学习整理已完成 课后编程题已完成 |
开发时出现的问题 | 无 |
未解决的问题 | 编程速度比较慢,C语言掌握的不够好,需要多加练习 |
开发收获 | 对C语言有了更加深入的了解,巩固复习C语言基础知识 |
其他 | 无 |
课堂知识总结:
1.C语言概述
-
C语言之父: 丹尼斯·里奇
-
C语言的特点:
面向过程。
直接访问硬件,运行效率,移植性。
<C语言为什么能够直接访问硬件?>
因为C语言有指针类型
<嵌入式开发为什么选择C语言?>
所有操作系统的内核都采用了C语言;
<Python最终替代所有的编程语言?>
不会,Python是解释性语言,不可能替代C语言 -
C语言标准?
K&RC 、C89、C99、C11
C语言标准 | 基础概述 |
---|---|
K&RC(经典C) | 1987年,Brian Kernighan 和 Dennis Ritchie合著的The C Programming Language 第1版 是公认的C标准。它定义了c语言,但没有定义c库。它不是官方的标准。 |
ANSIC/C89 | C99 标准引入了许多特性,包括内联函数(inline functions)、可变长度的数组、灵活的数组成员(用于结构体)、复合字面量、指定成员的初始化器、对IEEE754浮点数的改进、支持不定参数个数的宏定义,在数据类型上还增加了 long long int 以及复数类型。 |
C99 | 是ISO / IEC 9899:1999的非正式名称,1999年推出。它扩展了以前的版本( C90 ),增加了语言和标准库的新功能,并帮助实现更好地利用可用的计算机硬件,如IEEE 754-1985浮点运算和编译器技术,最主要的增强在数值处理上。2011年发布的C编程语言标准C11版本取代了C99。 |
C11 | 引入字节对齐说明符、泛型机制(generic selection)、对多线程的支持、 静态断言、原子操作以及对 Unicode 的支持。 |
- 如何学习C语言?
写代码并不是大量的看书、项目
2.数据类型
- 所有的数据类型的定义、初始化:
printf(“a = %p\n”,a);//a+1增加一个数组元素长度
printf("&a = %p\n",&a);//&a+1增加一个数组长度
- 右左法则:
1)确定a是一个变量,就要确定该变量保存什么类型的数据,保存什么类型的数据,它就是什么类型的变量;
2)确定a是一个指针变量,就要确定该指针变量保存什么类型的地址,保存什么类型的地址,它就是什么类型的指针变量;
3)确定a是一个数组,就要确定数组里的元素是什么类型的,元素是什么类型,它就是什么数组;
4)确定a是一个函数,就要确定函数的形参和返回值;
int a; //一个整型数
int *a; //整型指针变量
int **a; //整型指针的指针变量
int a[10]; //整型数组
int *a[10]; //整型指针数组
int (*a)[10]; //数组指针变量,指向的是整型数组
int (*a)(int); //函数指针变量,指向的是形参为int,返回值为int
int (*a[10])(int); //函数指针数组,
- 各种数据类型的字节长度(所占内存空间的大小)及取值范围;
基本类型字节长度:
int 4
char 1
short 2
long 4
float 4
double 8
指针变量的字节长度
指针变量的字节长度是固定的!!
<因为指针保存的是地址,地址在操作系统中是固定长度,长度是由操作系统位数决定的,
32位系统,指针是4个字节;64位系统,指针是8个字节>
Sizeof VS strlen:
1)sizeof是运算符,不是函数;作用:计算数据类型或者变量的所占内存空间的大小。
2)strlen是字符串库函数;作用:统计当前字符串的字符个数,不包含\0。
3)sizeof在计算字符串的大小时包含\0
- signed\unsigned
3.输入输出
- printf:
<格式化控制符>//行缓冲,满一行才输出
- scanf:
用scanf输入字符的时候需要先用getchar()将缓冲区里面的回车取走
- getchar
- putchar
- gets
4.运算符、基本控制语句
- i++; ++i;
逻辑运算符 && || !
- 位运算
- while for //已知循环次数用for,不知循环次数用while
- if switch case
- break continue
- goto:异常处理
//函数传参从右边开始传参
- 苏嵌工程实训-嵌入式Linux开发(基础命令)
- 嵌入式Linux入门基础知识 ---- 链接脚本、汇编语言、混合编程
- linux c 笔记-3 c语言基础知识
- Linux下C语言基础知识
- Linux系统下C语言编程基础知识介绍
- Linux下C语言编程-基础知识
- 嵌入式Linux应用开发完全手册(一)嵌入式Linux基础知识
- Linux下C语言编程基础知识
- Linux下C语言编程基础知识
- 嵌入式Linux串口应用编程基础知识
- 嵌入式linux基础知识累积
- 嵌入式4412开发板学习知识-Linux系统基础知识
- ## LINUX C 语言开发基础知识作业1
- Linux-C基础知识学习:C语言作业-输入10个整数,找出其中最大值和最小值
- Linux下C语言编程-基础知识
- 嵌入式Linux基础知识1(嵌入式Linux开发流程)
- Linux下C语言编程基础知识
- Linux下C语言编程--基础知识
- [转] linux操作系统下c语言编程入门--基础知识
- Linux下C语言编程--基础知识