C语言常用语法

1.标识符

标识符可由字母、数字和下划线组成。标识符必须以字母或下划线开头,大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字符数有不同的规定,一般允许7个字符

2.常量

  1. 整型常量
  • 十进制常数
  • 八进制常数(以0开头的数字序列)
  • 十六进制常数(以0x开头的数字序列)
  • 长整型常数(在数字后加字符L或l)
  1. 字符常量
    用单撇号括起来的一个字符,可以使用转义字符

  2. 实型常量(浮点型常量)

  • 小数形式
  • 指数形式
  1. 字符串常量
    用双撇号括起来的字符序列

3.表达式

  1. 算术表达式
  • 整型表达式:参加运算的运算量是整型量,结果也是整型数
  • 实型表达式:参加运算的运算量是实型量,运算过程中先转换成double型,结果为double
  1. 逻辑表达式
    用逻辑运算符连接的整型量,结果为一个整数(0或1)。逻辑表达式可以认为是整型表达式的一种特殊形式

  2. 字位表达式
    用位运算符连接的整型量,结果为整数。字位表达式也可以认为是整型表达式的一种特殊形式

  3. 强制类型转换表达式
    (类型)运算符使表达式的类型进行强制转换,如(float)a

  4. 逗号表达式(顺序表达式)
    其形式为:表达式1,表达式2,表达式3,…,表达式n
    顺序求出表达式1,表达式2,…,表达式n的值,结果为表达式n的值

  5. 赋值表达式
    将复制号=右侧表达式的值赋给赋值号左边的变量。赋值表达式的值为执行赋值后被赋值的变量的值

  6. 条件表达式
    其形式为:逻辑表达式?表达式1:表达式2
    逻辑表达式的值若为非零,则条件表达式的值等于表达式1的值;若逻辑表达式的值为零,则条件表达式的值等于表达式2的值

  7. 指针表达式
    对指针类型的数据进行运算,例如,p-2,p1-p2等(其中p,p1,p2均已定义为指向数组的指针变量,p1p2指向同一数组中的元素),结果为指针类型
    以上各种表达式可以包含有关的运算符,也可以是不包含任何运算符的初等量(例如,常数是算术表达式的最简单的形式)

4.数据定义

对程序中用到的所有变量都需要进行定义。对数据要定义其数据类型,需要时要指定其存储类别

  1. 类型标识符可用
    int
    short
    long
    unsigned
    char
    float
    double
    struct 结构体名
    union 共用体名
    enum 枚举类型名
    typedef定义的类型名
    结构体与共用体的定义形式为
struct struct_name
    {成员表列};
union union_name
    {成员表列};

typedef定义新类型名的形式为:typedef 已有类型 新定义类型;

typedef int COUNT;
  1. 存储类别可用
    auto
    static
    register
    extern
    (如不指定存储类别,做auto处理)
    变量的定义形式为:存储类别 数据类型 变量表列;
static float a,b,c;

注意外部数据定义只能用externstatic,而不能用autoregister

5.函数定义

其形式为:
存储类别 数据类型 函数名(形参表列)
函数体

函数的存储类别只能用externstatic。函数体是用花括号括起来的,可包括数据定义和语句。函数的定义举例如下

static int max(intx,int y)
{
    int z;
    z=x>y?x:y;
    return(z);
}

6.变量的初始化

可以在定义时对变量或数组指定初始值。
静态变量或外部变量如未初始化,系统自动使其初值为零(对数值型变量)或空(对字符型数据)。对自动变量或寄存器的变量,若未初始化,则其初值为一不可预测的数据。

7.语句

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句
    其中控制语句包括:
if(expression) {statement1 [else statement2]};
while(expression) {statement};
do (statement) while(expression);
for (exp1;exp2;exp3) {statement};
switch (expression) 
{
    case constant-expression: statement(1);
    case constant-expression: statement(2);
    case constant-expression: statement(n);
    default: statement(n+1);
}
# 前缀casedefault本身并不改变控制流程,它们只起标号作用,在执行上一个case所标志的语句后,继续顺序执行下一个case前缀所标志的语句,除非上一个语句中最后用break语句使控制转出switch结构
break statement;
continue statement;
return statement;
goto statement;

8.预处理指令

# define 宏名 字符串
# define 宏名(参数1,参数2,...,参数n) 字符串
# undef 宏名
# include "文件名" (<文件名>)
# if 常量表达式
# ifdef 宏名
# ifndef 宏名
# else
# endif
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式C语言是针对特定硬件平台设计的一种编程语言,它的语法与标准C语言相似,但为了适应资源有限的环境,通常会有所简化和优化。以下是一些关键的嵌入式C语言常用语法知识点: 1. 数据类型:常见的有基本数据类型(如int、char、float)、结构体(struct)、共用体(union)、枚举(enum)以及定义硬件特有的数据类型(如GPIO引脚状态等)。 2. 变量声明和初始化:在嵌入式中,注意内存分配的效率,可能需要预先定义变量或者使用静态存储区。 3. 功能库使用:许多嵌入式系统有自己的API或库,例如UART通信、GPIO控制、中断管理等,要了解如何正确调用这些函数。 4. 函数定义和调用:嵌入式程序往往依赖于函数的模块化设计,可能涉及到中断服务程序(ISRs)和裸中断。 5. 预处理指令:#define、#include、#ifdef、#ifndef等用于宏定义、头文件引用和条件编译。 6. 指针:嵌入式系统中指针的使用非常频繁,特别是在内存管理和硬件操作中。 7. 操作符重载和运算符优先级:由于资源限制,嵌套操作可能较少见,但理解基本的运算符优先级仍然重要。 8. 错误处理和异常处理:考虑到资源有限,嵌入式程序通常更注重错误检查和简单的异常处理机制。 9. 结构化编程:循环、分支结构(if-else、switch)、递归等控制流结构必不可少。 10. 低级别硬件交互:可能会直接操作寄存器或者访问内存地址,理解和编写汇编代码的知识也常常被要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值