嵌入式之C思想-语法

掌握C的设计思路。

什么是计算机程序语言的学习思路?

基本的程序设计思想+语言工具的特性。不同的点在于语言工具特性(其实就是类库不同),相通的点在于程序设计思想(其实就是算法)。


gcc -o 输出文件名 +空格+输入文件名:即执行gcc的翻译。gcc是将高级语言翻译成机器语言的工具集。

c编译过程:

预处理:

gcc -E:替换过程。

编译:

gcc -S:相当于编译.c变成.s文件。

汇编:

gcc -c:把.s变成.o文件。

链接:

gcc -o:智能完成以上三个步骤。


#include ""--一般都是自定义的头文件。

#include<>--指系统库里的头文件。

gcc -I +查找头文件的目录;//让gcc在查找的目录下查找。

条件预处理:

gcc -D+宏名;等价于在C文件编译前,人为增加了一个宏名(相当于一个开关)

宏体中实现# 与##

#:代表字符串化

##:连接符号


关键字:预先定义的一定意义的字符串。总共32个。

sizeof:关键字,编译器查看内存空间容量的一个工具。

return:函数最后返回值的过程。

c语言操作对象就是内存,如何描述内存呢?那就是数据类型。

硬件操作的最小单位是bit

 软件操作的最小单位是byte(1B)。

编译器最优处理大小:系统一个周期所能处理的最大处理单位。int 就描述最优的处理大小类型。char一般用于硬件处理中。

八进制对应是3个比特以0开头,十六进制对应的4个比特以0X开头。

short:比较特殊的16位,有要求的。long,c语言可扩的一个类型,如long long。

有符号数:当作数字来进行运算。

无符号数:当作数据来采集或申请。

float:代表4个字节

double:代表8个字节。

void:更多的是占位或声明表示。

struct:多个元素空间累加的关系

union:多个元素共用起始地址。更多的是技巧型代码。

enum:一堆常数的打包,地位是比较低;枚举变量就是一个整数,可以从打包的常数中去取。只当作人交流的限制符。

typedef:定义类型别名。约定别名一般加后缀 _t。

if  else  :条件:

switch case :switch +整型 ;case +具体数字。

for :次数

while :条件

do :先执行一次。

goto: 在函数内部跳没问题。

对于资源属性中位置的限定,就是类型修饰符所描述。

auto:放在普通的内存中,可读可写。

register:放在寄存器中,cpu的内部缓存器;定义一些快速访问的变量。这个时候&(取地址)是没有作用的。

static:静态,1、修饰函数内部的变量2、函数外部的变量。3、函数。

extern:外部声明

const:常量的定义;只读的变量。

volatile:告知编译器的关键字,不要优化。应用场景:变量值的改变不仅仅可以通过软件,还可能通过其他的方式(如硬件的用户)。

算术运算符:+-*/%。一般两边数据类型是相同的。%的特性:任一个数%M后,那么值一定是「0,M」的数。

应用场景:1、取一个范围的数2、得到 一个M进制的个位数。3、得到一个循环数据结构的下标

逻辑运算:非0或0;!逻辑取反 与~(按位取反)是完全不同的。

?:翻译成if else

位运算:嵌入式开发中非常重要。

<<: 二进制下的乘法。

>>:要看符号位不同。有符号数负数,右移后符号位补1,无符号正数补0.

&,|,^:& 清零器 |保留,设置器

内存访问符:

():限制符,函数访问符

「」:内存访问ID符,如数组。

{}:函数体的限制符

->or .:变量访问符

&*:由后面数不同的限制符意义不同。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值