📜  C和嵌入式C有什么区别?(1)

📅  最后修改于: 2023-12-03 14:40:25.619000             🧑  作者: Mango

C和嵌入式C的区别

C语言是一种通用的、过程式的程序设计语言,而嵌入式C则是一种专门为嵌入式开发设计的语言。

C语言的特点

C语言具有以下特点:

  • 结构清晰:C语言程序由多个模块组成,每个模块都可以分别进行编译、连接,具有良好的模块化特性。
  • 可移植性:C语言的标准库提供了大量的标准函数,在不同的操作系统和硬件平台上都可以编写出具有可移植性的程序。
  • 高效性:C语言代码直接被编译成机器语言,运行速度很快。
  • 灵活性:C语言提供了多种数据类型和语法结构,可以编写出各种算法和数据结构。
嵌入式C的特点

嵌入式C具有以下特点:

  • 轻量级:嵌入式C针对嵌入式系统特点进行了轻量级优化,减小了代码大小和内存占用。
  • 实时性:嵌入式C可以支持实时操作系统,具有较高的实时性和可靠性。
  • 硬件抽象性:嵌入式C可以方便地操作各种硬件设备,包括I/O口、串口、定时器等,具有很好的硬件抽象性。
  • 特殊语法:嵌入式C支持特殊的语法结构,例如中断函数、寄存器变量等,方便编写嵌入式系统程序。
示例代码

以下是一个简单的C语言程序,用于计算斐波那契数列的第n项:

#include <stdio.h>

int fib(int n) {
    if (n <= 2) {
        return 1;
    } else {
        return fib(n-1) + fib(n-2);
    }
}

int main() {
    int n = 10;
    printf("fib(%d)=%d\n", n, fib(n));
    return 0;
}

以下是一个使用嵌入式C编写的程序,用于控制LED灯的亮灭:

#include <reg52.h>

sbit led = P2^0;

void delay_ms(unsigned int ms) {
    unsigned int i,j;
    for(i=0;i<ms;i++) {
        for(j=0;j<1000;j++);
    }
}

void main() {
    while(1) {
        led = 0;
        delay_ms(500);
        led = 1;
        delay_ms(500);
    }
}

在以上代码中,reg52.h是针对AT89C52单片机的头文件,sbit用于定义一个特殊的位变量,用于操作单片机的端口,P2^0表示单片机P2口的第0位,delay_ms是延时函数。程序不断循环,在LED灯上闪烁。